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

对list应用临界区是否有效

2012-08-02 
对list使用临界区是否有效?struct junode{ CString juint pinlv}list junode julistjunode tempju一

对list使用临界区是否有效?
struct junode
{ CString ju;
  int pinlv;
 }

list <junode> julist;

junode tempju;

一个函数处理一个list中的数据,为提高速度,对该函数启动了4个线程,
定义了一个iterator plist 指向 list,

EnterCriticalSection(&cs); 
tempju.ju=plist->ju;//取得链表中的数据。
tempju.pinlv=plist->pinlv;//取得链表中的数据。
list++; 
LeaveCriticalSection(&cs); 

这样4个线程中得到的数据是 一样的,就是说 临界区没有起到作用。

请教如何解决。






[解决办法]
plist++; ??
[解决办法]
使用的话 保险一点吧,这样就可以保证 每次只能有一个线程访问该list
[解决办法]
如果都只读list 不erase pop 啥的.安心吧.很安全.
[解决办法]
如果只读,就无所谓同步,除非有读写同时发生,那么就需要lock来保证数据同步
[解决办法]

探讨

如果只读,就无所谓同步,除非有读写同时发生,那么就需要lock来保证数据同步

热点排行