本页使用了标题或全文手工转换

臨界區段

维基百科,自由的百科全书
跳转至: 导航搜索

在同步的程式設計中,臨界區段Critical section)指的是一個存取共用資源(例如:共用裝置或是共用記憶體)的程式片段,而這些共用資源有無法同時被多個執行緒存取的特性。

當有執行緒進入臨界區段時,其他執行緒或是行程必須等待(例如:bounded waiting 等待法),有一些同步的機制必須在臨界區段的進入點與離開點實現,以確保這些共用資源是被互斥或的使用,例如:semaphore

只能被單一執行緒存取的裝置,例如:印表機

一個最簡單的實現方法就是當執行緒/線程(Thread)進入臨界區段時,禁止改變處理器;在uni-processor系統上,可以用"禁止中斷(CLI)"來完成,避免在執行上下文交換(Context switching)的時候發生系统调用(System Call);當離開臨界區段時,處理器回復原先的狀態。

外部連結[编辑]

MSDN Library -- Critical section