怎么使用 TThreadList 类?(150分)

  • 主题发起人 主题发起人 chy578
  • 开始时间 开始时间
C

chy578

Unregistered / Unconfirmed
GUEST, unregistred user!
TThreadList 可以把多个线程缓存起来, 可是它该怎么用呢?
TThreadList 是从TObject 类继承而来的,我就有些不明白了.
有谁能说说它的原理..
 
跟TList差不多,不过它是Thread safe的,可以lock、unlock
 
我用过这个类,它内含一个TLIST,但是不能直接访问,而必须用LOCKLIST才能访问,
用完之后要UNLOCKLIST,否则其它线程将访问不到(直到拥有它的线程调用UNLOCK放权)。
它的ADD和REMOVE等方法中会自动调用LOCK和UNLOCK(看源码便知)。
因此它是线程安全的,不会同时有两个线程拥有访问权限。
 
能不能再说详细一点。。
 
TThreadList就是用于保存多线程中需要访问的临界资源的类,
基本上就是用TList来保存资源,TCriticalSection来控制临界访问
当它LockList时,TCriticalSection.Lock,完了后调用UnLockList(TCriticalSection.UnLock)
里面中的Add, Delete,就是将需要控制的资源进行保存和删除
一般用于在线程访问VCL组件时进行同步访问用的,其时也可用Thread.Synchroize
如果你用在多线程缓存中,即是说你的多线程的一个一个的运行,那要多线程做什么?
 
这个要听
 
COPY 的意思是说这个类没有多大的实际意义,至少是在一般的应用当中对吗? 
  如果只是想访问VCL我肯定是用 Synchroize 的。。
 
多人接受答案了。
 
后退
顶部