【发布时间】:2011-12-18 01:19:43
【问题描述】:
是否可以使用互斥锁来锁定向量中的元素而不是整个向量?
例如,给定一个向量 myVec; 将 10 个元素推回 myVec 中
for (int i = 0; i < 10; ++i)
{
buffer myBuf = i; // actually myBuf is not necessarily int.
myVec.push_back(myBuf);
}
向量的每个元素都会被多个线程异步更改。 如何使用互斥锁只锁定 myVec 中的一个缓冲区,以便一个线程可以写入或读取一个元素;另一个可以同时读取和写入另一个元素?
谢谢
【问题讨论】:
-
你能更准确地说明你必须做什么吗?我的意思是,也许更多细节?
标签: c++ multithreading vector mutex deadlock