作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想实现一个类似数组的数据结构,允许多个线程同时修改/插入项目。在性能方面如何获得它?我围绕 std::vector 实现了一个包装类,并使用关键部分来同步线程。请在下面查看我的代码。每次一个线程想要处理内部数据时,它可能不得不等待其他线程。因此,我认为它的性能不好。 :( 有什么想法吗?
class parallelArray{
private:
std::vector<int> data;
zLock dataLock; // my predefined class for synchronizing
public:
void insert(int val){
dataLock.lock();
data.push_back(val);
dataLock.unlock();
}
void modify(unsigned int index, int newVal){
dataLock.lock();
data[index]=newVal; // assuming that the index is valid
dataLock.unlock();
}
};
最佳答案
看看 Boost 库中的 shared_mutex。这允许您有多个读者,但只有一个作者
关于c++ - 实现线程安全数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553338/
我是一名优秀的程序员,十分优秀!