首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-11-07 
访问资源但不修改资源是否需要使用线程锁?我设置了一个全局队列 g_vOffLineQue 有2个线程同时对此队列进行

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

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

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

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

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

如果是同时读,都没问题

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

热点排行