線程同步是指線程之間所具有的一種制約關系,一個線程的執行依賴另外一個線程的消息,當它沒有得到另一個線程的消息時應等待,直到消息到達時才被喚醒。
線程互斥是指對於共享的進程系統資源,每個線程訪問時的排他性。當有若干個線程都要使用某一個共享資源時,任何時刻最多只允許一個線程去使用,其他線程必須等待,知道占用占用資源者釋放該資源。線程互斥可以看成是一種特殊的線程同步。
線程間的同步方法大體可以分為兩類:用戶模式和內核模式
1、用戶模式:原子操作,臨界區
2、內核模式:事件、信號量、互斥量
內核模式就是利用系統內核對象的單一性來進行同步,使用時需要切換內核態與用戶態,而用戶模式就是不需要切換內核態,只在用戶態完成操作