訪問臨界資源的代碼區被成爲臨界區,每次僅容許一個執行塊進入臨界區。一個線程進入了臨界區而後由於系統調度而被打斷,但此時他仍是在臨界區中的,因此此時其餘執行線程仍是不被容許進入臨界區編程
特定的共享數據區在一次訪問過程當中,不容許其餘的訪問穿插訪問的情景。好比修改一個共享數據的時候不能容許其餘的代碼來同時訪問(讀和寫有時候不必定都不被容許,和具體的業務需求相關)。好比對一個文件的寫入過程不能被其餘寫入操做穿插執行,不然此時就會出現實際寫入的內容和指望不符合。操作系統
特定的臨界代碼不容許被打斷,好比操做系統的調度或者中斷程序的執行中斷了特定代碼段的執行,這種狀況很少見但也是臨界區的一種,好比常見的IAP代碼中須要對Flash進行在線編程,大部分的芯片實現都是要求按必定的操做序列進行flash的編程解鎖此時這個過程就是臨界的由於若是中間產生了中斷或系統調用致使操做序列中間被插入其餘的操做就會致使硬件判斷解鎖序列非法進而沒法正常編程flash。線程