只是想澄清一點。 想象一下,我使用EnterCriticalSection的窗口API。我稱他們都與EnterCriticalSection(&criticalsection);
什麼是關鍵部分?
這是線程函數是多線程
void thread(){
//enter critical section (part 1)
data
//leave critical section
///more data 1
//entercritical section (part 2)
//more data 2
//leave critical section
}
一旦線程進入臨界(第1部分),其他線程不能不管輸入是否更多的數據1的該部分實際上有任何共享數據或不正確?同樣在此期間,其他線程也不能進入關鍵部分的第2部分。
漢斯 - 不正確。 Jake詢問CriticalSection1中的進程是否會鎖定CS1和CS2。這是錯誤的 - 關鍵部分是獨立的。傑克,如果你想讓CS1同時鎖定,你可以在CS1中嵌套CS2。 – Greg 2012-08-17 13:30:12