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