linux 同步 互斥 概念

2021-06-03 19:31:30 字數 505 閱讀 2378

相交程序之間的關係主要有兩種,同步與互斥。所謂互斥,是指散步在不同程序之間的若干程式片斷,當某個程序執行其中乙個程式片段時,其它程序就不能執行它 們之中的任一程式片段,只能等到該程序執行完這個程式片段後才可以執行。所謂同步,是指散步在不同程序之間的若干程式片斷,它們的執行必須嚴格按照規定的 某種先後次序來執行,這種先後次序依賴於要完成的特定的任務。

顯然,同步是一種更為複雜的互斥,而互斥是一種特殊的同步。

也就是說互斥是兩個執行緒之間不可以同時執行,他們會相互排斥,必須等待乙個執行緒執行完畢,另乙個才能執行,而同步也是不能同時執行,但他是必須要安照某種次序來執行相應的執行緒(也是一種互斥)!  總結:互斥:是指某一資源同時只允許乙個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。

同步:是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源

出自:

同步與互斥概念

程序同步是個作業系統級別的概念,程序是占有資源的最小單位 執行緒可以訪問其所在程序內的所有資源,但執行緒本身並不占有資源 但對於某些資源來說,其在同一時間只能被乙個程序占用,這些一次只能被乙個程序所占用的資源就是所謂的 臨界資源 例如物理上的印表機,或是在硬碟或者記憶體中被多個程序共享的一些變數和資...

Linux 互斥與同步

使用互斥鎖之前必須要建立乙個鎖的物件。互斥鎖的型別為pthread mutex t,建立乙個變數就是建立了乙個互斥鎖,我們通過這個變數建立開鎖和解鎖的聯絡。但這個鎖還不能夠直接使用,需要對其進行初始化。我們對建立好的鎖進行初始化的方法有兩種 第二個引數attr 如果傳入null,互斥鎖的屬性設定為預...

Linux系統程式設計 同步和互斥的概念

現代作業系統基本都是多工作業系統,即同時有大量可排程實體在執行。在多工作業系統中,同時執行的多個任務可能 這兩種情形是多工程式設計中遇到的最基本的問題,也是多工程式設計中的核心問題,同步和互斥就是用於解決這兩個問題的。互斥 是指散步在不同任務之間的若干程式片斷,當某個任務執行其中乙個程式片段時,其它...