如大家所了解的,進程互斥是由互斥資源引起的,即各進程之間共享互斥資源的使用權,這種競爭沒有確定的必然聯系,哪個進程競爭到互斥資源的使用權,則該資源就歸哪個進程使用,從而獲得所需資源的進程就可以獲得 CPU 繼續執行,直到它不再需要該資源時才放棄該資源的使用權,而那些未申請到互斥資源的進程則不能執行,直到得到所申請的互斥資源。
因此,進程互斥是通過互斥資源來制約各進程執行的,這種互斥無法事先指定進程對資源的訪問順序,即訪問時無序的。
進程同步則是指相互協作的并發進程之間存在著必然的聯系,若當前運行進程執行過程中需要進行同步時,在沒有得到協同工作的其他合作進程發來的同步消息之前,當前運行進程則不能繼續向前推進(運行)。
在進程同步中,雖然互斥資源仍然制約著進程的執行,但協調個進程向前推進的只能是進程同步,即通過進程同步來協調和制約各合作進程的執行,即進程同步是在互斥的基礎上(大多是情況),通過對資源的有序訪問去完成一個共同的任務。