Linux企业级开发技术(7)——libevent企业级开发之锁和线程
来源:互联网 发布:淘宝买家信誉规则 编辑:程序博客网 时间:2024/06/05 05:31
编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。
libevent的结构体在多线程下通常有三种工作方式:
1、某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。
2、某些结构体具有可选的锁:可以告知libevent是否需要在多个线程中使用每个对象。
3、某些结构体总是锁定的:如果libevent在支持锁的配置下运行,在多个线程中使用它们总是安全的。
为获取锁,在调用分配需要在多个线程间共享的结构体的libevent函数之前,必须告知libevent使用哪个锁函数。
如果使用pthreads库,或者使用Windows本地线程代码,那么你是幸运的:已经有设置libevent使用正确的pthreads或者Windows函数的预定义函数。
接口:
int evthread_use_pthreads(void);
函数在成功时返回0,失败时返回-1。
如果使用不同的线程库,则需要一些额外的工作,必须使用你的线程库来定义函数去实现:
0 0
- Linux企业级开发技术(7)——libevent企业级开发之锁和线程
- Linux企业级开发技术(5)——libevent企业级开发之简介
- Linux企业级开发技术(6)——libevent企业级开发之内存管理
- Linux企业级开发技术(1)——epoll企业级开发之简介
- Linux企业级开发技术(2)——epoll企业级开发之epoll接口
- Linux企业级开发技术(3)——epoll企业级开发之epoll模型
- Linux企业级开发技术(4)——epoll企业级开发之epoll例程
- JSF和AJAX企业级开发之路
- 干货分享—Java EE企业级应用开发技术路线图
- Angular企业级开发(7)-MVC之控制器
- Angular企业级开发(7)-MVC之控制器
- Angular企业级开发(7)-MVC之控制器
- Angular企业级开发(7)-MVC之控制器
- Angular企业级开发(7)-MVC之控制器
- 企业级应用vs企业级开发
- 企业级应用vs企业级开发
- Linux企业级项目实践之网络爬虫(26)——线程池
- Flex技术在企业级开发中的应用(转)
- Nginx配置文件nginx.conf中文详解
- Android处理图片OOM的若干方法小结
- C++_简单C++程序
- ActionBar 修改title 的字体 大小和颜色
- Java 6 JVM参数选项大全(中文版)
- Linux企业级开发技术(7)——libevent企业级开发之锁和线程
- 数据结构之堆栈
- Leetcode: Copy List With Random Pointer分析理解
- 解决rpmdb:Lock table is out of available locker entries问题
- android中的颜色color使用总结
- dedeeims设置当前导航条样式的方法
- JAVA中类Cursor的定义
- 利用ENGINE替换OPENSSL中的加解密算法
- SQLSERVER中的 CEILING函数和 FLOOR函数