博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux企业级开发技术(7)——libevent企业级开发之锁和线程
阅读量:4352 次
发布时间:2019-06-07

本文共 488 字,大约阅读时间需要 1 分钟。

 

编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。

libevent的结构体在多线程下通常有三种工作方式:

1、某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。

2、某些结构体具有可选的锁:可以告知libevent是否需要在多个线程中使用每个对象。

3、某些结构体总是锁定的:如果libevent在支持锁的配置下运行,在多个线程中使用它们总是安全的。

为获取锁,在调用分配需要在多个线程间共享的结构体的libevent函数之前,必须告知libevent使用哪个锁函数。

如果使用pthreads库,或者使用Windows本地线程代码,那么你是幸运的:已经有设置libevent使用正确的pthreads或者Windows函数的预定义函数。

 

 

接口:

 

int evthread_use_pthreads(void);

函数在成功时返回0,失败时返回-1。

如果使用不同的线程库,则需要一些额外的工作,必须使用你的线程库来定义函数去实现:

转载于:https://www.cnblogs.com/niulanshan/p/6174687.html

你可能感兴趣的文章
Reactor-反应器模式
查看>>
Object的wait/notify/notifyAll&&Thread的sleep/yield/join/holdsLock
查看>>
MVC3+EntityFramework实践笔记
查看>>
一个漂亮的 PlaceHolder
查看>>
jq 中.html(),.text()和.val()的总结
查看>>
ACE OLEDB 12.0连接方式
查看>>
Stack,( Aizu - ALDS1_3_A)
查看>>
javascript_17-基本类型和引用类型
查看>>
django paginator 分页功能
查看>>
java arrayList vector 区别
查看>>
测试思想-文档评审 关于需求评审
查看>>
poj 1035 纯正的字符串水
查看>>
Spring Shiro配置第三方SSO客户端登录
查看>>
mybatis逆向工程之动态web项目
查看>>
pip问题解决方案
查看>>
iphone手机连接USB时出现须要Mobile device setup disk上的usbaapl.sys文件
查看>>
一步一步教你在 Android 里创建自己的账号系统(一)
查看>>
巧妇能为少米之炊(1)——Android下小内存下的生存之道
查看>>
使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916 - z...
查看>>
我的四轴专用PID参数整定方法及原理---超长文慎入(转)
查看>>