在我的Linux專欄中
在裏面我做了詳細的講解,並且還附帶了源代碼
在期間,有個重要的概念, 我們需要單獨拎出來講,就是互斥和同步
我們知道, 多個進程/線程同時訪問同一共享資源時
會造成數據混亂
因此呢,才需要互斥和同步機制進行保護
所以這一篇我們需要把這個概念理清楚
1、那進程/線程中的互斥和同步到底什麼呢?
進程中的互斥和同步 和 進程中的互斥和同步 是一個意思.
互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。
同步:是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源。
————————————————
摘抄的原文鏈接:https://blog.csdn.net/qq_41822235/article/details/85838959
2、進程的互斥和同步機制:
應用的地方: 進程間通信裏的 (共享內存)
實現的工具: 信號量集
3、線程的互斥和同步機制:
應用的地方: 多線程編程
實現的工具: 互斥鎖 信號量 條件變量