每个线程可以使用“插入”函数将对象插入容器(最多一次)。此后,线程可能会尝试使用“get”函数访问该对象。因此,当被同一线程使用时,'insert' 和 'get' 之间没有竞争。但是,当另一个线程调用“get”时,另一个线程可能会尝试插入自己的对象
我需要一个容器,这种情况不需要任何同步方法。
执行之间的线程数可能会有很大差异。
class Object;
class Container<Object>;
Container<Object> g_container;
void insert(int threadId)
{
ScopedLock<Mutex> lock(insertMutex);
Object obj;
g_container[threadId] = obj;
}
Object get(int threadId)
{
return g_container[threadId];
}