全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1186
推到 Plurk!
推到 Facebook!

Delphi 6的TThread.Synchronize()內部為何用到兩組Critical Sec

尚未結案
A022
一般會員


發表:18
回覆:29
積分:9
註冊:2002-06-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-29 17:24:36 IP:211.76.xxx.xxx 未訂閱
如題:請教Delphi 6的TThread.Synchronize()內部為何用到兩組Critical Section第一組為了同一時間只能有一個thread執行傳給Synchronize()的procedure,這可以理解.但是第二組就不知為何了?請指教.Tks!
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-29 18:55:51 IP:61.155.xxx.xxx 未訂閱
临界区是一种最直接的线程同步方式。 所谓临界区,就是一次只能由一个线程来执行的一段代码。 如果把初始化数组的代码放在临界区内,另一个线程在第一个线程处理完之前是不会被执行的。 关于第2组看起来好像没有起作用,但是我想 .... pthread_cond_wait(SyncProc.Signal, ThreadLock); {$ENDIF} finally LeaveCriticalSection(ThreadLock); .... 它的主要作用是防止程序在第一组每执行到 LeaveCriticalSection(ThreadLock); 时候error,然后就第2组的 LeaveCriticalSection(ThreadLock); 来释放吧!
系統時間:2024-03-28 20:57:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!