读书人

访问资源但不批改资源是否需要使用线程

发布时间: 2012-11-07 09:56:10 作者: rapoo

访问资源但不修改资源是否需要使用线程锁?
我设置了一个全局队列 g_vOffLineQue 有2个线程同时对此队列进行操作,线程1会不停的对此队列增加数据,线程2会访问此队列并删除满足条件的数据,我想问一下如果线程2仅仅只是访问队列的时候是否需要使用线程锁?

Scope_Mutex lock(m_vLock); //此处的线程锁是否需要?

pOffLineInfo = g_vOffLineQue.front();
if ( 1 == pOffLineInfo->cmd )
{
...
}

如上,在这个访问操作前是否需要加线程锁呢?

[解决办法]
就算是读也一样需要加锁
[解决办法]
你怎么能够保证,在一个线程读时,另一个线程没对资源修改了。

如果是同时读,都没问题

同时读写,就会出问题了。除非你能保证一个读时,另外一个不在写。操作系统保证不了,只能你自己保证了。

读书人网 >C++

热点推荐