Delphi 6的TThread.Synchronize()內部為何用到兩組Critical Sec |
尚未結案
|
A022
一般會員 發表:18 回覆:29 積分:9 註冊:2002-06-21 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
临界区是一种最直接的线程同步方式。
所谓临界区,就是一次只能由一个线程来执行的一段代码。
如果把初始化数组的代码放在临界区内,另一个线程在第一个线程处理完之前是不会被执行的。
关于第2组看起来好像没有起作用,但是我想
....
pthread_cond_wait(SyncProc.Signal, ThreadLock);
{$ENDIF}
finally
LeaveCriticalSection(ThreadLock);
.... 它的主要作用是防止程序在第一组每执行到
LeaveCriticalSection(ThreadLock);
时候error,然后就第2组的
LeaveCriticalSection(ThreadLock);
来释放吧!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |