- 互斥是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。
- 同步是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。
- 同步其實已經實現了互斥,所以同步是一種更為復雜的互斥。
- 互斥是一種特殊的同步。
所謂互斥,就是不同線程通過競爭進入臨界區(共享的數據和硬件資源),為了防止訪問沖突,在有限的時間內只允許其中之一獨占性的使用共享資源。如不允許同時寫
同步關系則是多個線程彼此合作,通過一定的邏輯關系來共同完成一個任務。一般來說,同步關系中往往包含互斥,同時對臨界區的資源會按照某種邏輯順序進行訪問。如先生產后使用
總的來說,兩者的區別就是:互斥是通過競爭對資源的獨占使用,彼此之間不需要知道對方的存在,執行順序是一個亂序。
同步是協調多個相互關聯線程合作完成任務,彼此之間知道對方存在,執行順序往往是有序的。
lock與unlock方法,替換synchronized,這就是互斥鎖的體現。消費者生產者模式就是同步鎖的體現。