C++Builder 程序员博客
29 Jul
不记得在哪里看到过一句话,说list,或者是TList不是线程安全的.
有一个线程安全的版本是….
谁晓得这个?
需要安全的话,你自己加一个锁就可以了。
TList 是线程不安全的!
可以使用TThreadList
TThreadList *hThreadList = new TThreadList();
hThreadList->LockList();
hThreadList->Add(void*);
hThreadList->Unlocklist();
其实ThreadList 就是封装了TList + 临界段来实现的
该回复于2008-07-29 09:17:35被版主删除
要线程安全,可以用TThreadList
说明下,
如果用TThreadList,则在调用Add和Remove时都是不需要调用LockList(); 和Unlocklist(); 的,该类已经对这两个方法进行了保护;
如果需要获取到实际的TList对象,则必须用LockList(); 和Unlocklist(); ,
如下:
TList * list=hThreadList->LockList();
//此时正常操作list
hThreadList->Unlocklist();
TThreadList
是线程安全的。