C++中高并发使用线程不安全类库的一种方法
来源:互联网 发布:无限法则 知乎 编辑:程序博客网 时间:2024/06/11 01:49
假设xxx类不是线程安全的类,不能够同时被多个线程使用,那么可以参考下面的方法来提高并发其性。假设线程池的容量是EPF_POOL_SIZE,则可以先创建EPF_POOL_SIZE*2个xxx类,如下,
int limit = 2*EPF_POOL_SIZE; vector<shared_ptr<xxx> > sc_arr; for (int i = 0; i < limit; i++) { shared_ptr<Safe_Cropping> sc(new xxx()); sc_arr.push_back(sc); }在使用xxx类的时候可参照如下方法,
//Generate the random number boost::mt19937 rng(time(0)); boost::uniform_int<> ui(0, limit - 1); ... ... int index = ui(rng); shared_ptr<xxx> irc = sc_arr->at(index)->ipc_roi_crop; sc_arr->at(index)->mut.lock(); irc->doing(); sc_arr->at(index)->mut.unlock();
上述方法的本质思想是采用空间换时间的思路,预先创建大量的备用对象,在需要的时基于随机算法获取实例,并使用锁来确保互斥访问,从而使线程不安全的类能以大并发的方式运行。
- C++中高并发使用线程不安全类库的一种方法
- C#一种不安全的方法跨线程访问控件
- java--线程不安全的类
- java解决线程不安全问题的方法
- 【java并发】线程并发库的使用
- 一种简单线程并发控制的实现
- 线程不安全的类型
- Servlet线程的不安全
- 线程不安全的情况
- 线程不安全的ArrayList
- Java并发编程 之 HashMap线程不安全
- 关于Servlet的线程不安全的原因及防范方法
- 解决SimpleDateFormat的线程不安全问题的方法:ThreadLocal
- 创建线程的一种方法
- SimpleDateFormat是线程不安全的,怎样使用使其安全?
- [原创]不安全的C++!
- 不安全的C函数
- HashMap为什么线程不安全?浅析高并发情况下的HashMap
- Linux常用命令大全
- hdu 2159
- IEnumerator和IEnumerator接口的使用
- Android 4.0 横竖屏切换注意事项
- 在Windows平台为qt应用程序设置图标
- C++中高并发使用线程不安全类库的一种方法
- rownum等的介绍
- linux下mount命令的用法
- gcc的小技巧
- glPushMatrix 和glPopMatrix图解 ----求别笑
- 内存管理详解
- jQuery选择器之过滤选择器之属性过滤选择器
- SQL Server
- 图像处理笔记(6)