TThreadList的凝问
对TThreadList不熟悉,据说是线程安全的TList,不知确实否?
在网上查找到如下使用方法:
TThreadList *pThreadList = new TThreadList();
TList *pList = pThreadList->LockList(); //锁定
pList->Add(...); //操作
pThreadList->UnlockList(); //解锁
TList是非线程安全的,多线程使用时如下:
TCriticalSection *Lock_List = new TCriticalSection();
TList *pList = new TList();
Lock_List->Acquire(); //锁定
pList->Add(...); //操作
Lock_List->Release(); //解锁
以上两种使用有什么区别?
哪种效率更高?
而TThreadList中也有Add(),能否不加锁而直接如下使用?
pThreadList->Add(...)
以上都是在多线程中使用
在网上查找到如下使用方法:
TThreadList *pThreadList = new TThreadList();
TList *pList = pThreadList->LockList(); //锁定
pList->Add(...); //操作
pThreadList->UnlockList(); //解锁
TList是非线程安全的,多线程使用时如下:
TCriticalSection *Lock_List = new TCriticalSection();
TList *pList = new TList();
Lock_List->Acquire(); //锁定
pList->Add(...); //操作
Lock_List->Release(); //解锁
以上两种使用有什么区别?
哪种效率更高?
而TThreadList中也有Add(),能否不加锁而直接如下使用?
pThreadList->Add(...)
以上都是在多线程中使用
...全文


