-
mutex(維基百科 )
According Wikipedia, Mutex(Mutual exclusion) 互斥鎖,是一種用於多線程編程中,防止兩條線程同時對同一公共資源(比如全局變量)進行讀寫的機制。
通過將代碼切片成一個一個的臨界區域(critical section)達成。
臨界區域,指的是一塊對公共資源進行訪問的代碼,並非一種機制或算法。
確保同一時間只有一個臨界區域處於運行狀態,而其他的臨界區域,無論是讀是寫,都必須被掛起並且不能獲得運行機會。
一個程序、進程、線程可以擁有多個臨界區域,但是並不一定會應用互斥鎖。
-
舉例理解mutex
一個多人激烈爭論的會議上,人人搶着發言誰都聽不清。
主持人拿來一個塑料尖叫雞,誰拿着尖叫雞誰說話,想說話的只能向支持人示意,發言人發言結束後把尖叫雞給主持人,主持人再給下一個想要發言的人。
其中主持人就是操作系統;尖叫雞就是mutex。
-
延伸概念
-
mutex In Python
以前有一個mutex module which has been deprecated since version 2.6。
後來使用
threading
模塊的Lock()
方法。>>> mutex = threading.Lock() >>> mutex.acquire() >>> print("mutex is now locked") >>> mutex.release() >>> print("mutex is now unlocked")
-
Reference
從Python角度理解mutex
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.