執行緒的同步與互斥

2021-08-03 21:14:54 字數 727 閱讀 6221

什麼是臨界資源?

多個程序不能同時使用的資源叫做臨界資源。

什麼是臨界區?

每個執行緒訪問臨界資源的那段**稱作臨界區

作業系統在引入執行緒的併發性了以後,隨即帶來的就是資源共享和競爭的問題(因為執行緒共享程序所擁有的所有資源)。所以,執行緒的同步與互斥機制是相當重要的。

什麼是同步,什麼是互斥?

執行緒當中為了共享資源而不出現差錯,都有相互制約的關係

(1)間接相互制約。乙個系統中的資源必定是多個執行緒所共享的,所謂的間接相互制約就是這個資源我占有的時候,其他的執行緒不能夠獲取到這個資源,必須等待資源釋放後,才能夠去競爭獲取。

(2)直接相互制約。執行緒之間有時也是相互合作的,比如說執行緒a處理的資料提供給執行緒b,執行緒b有了執行緒a提供的資料才能工作,如果執行緒a還沒有執行結束不能返回處理結果,那麼執行緒b就會一直等待執行緒a結束,一直處於阻塞狀態。

以上說的間接相互制約,可以稱為是互斥。而直接相互制約可以稱為是同步。對於互斥,還可以這樣理解,執行緒a和執行緒b互斥的訪問某乙個資源的時候他們之間會產生乙個順序的問題—–要麼執行緒a等待執行緒b操作完畢,要麼執行緒b等待執行緒a操作完畢,這其實就是執行緒同步的問題。所以說,同步包括互斥,互斥也是一種特殊的同步。

執行緒同步與互斥

與多程序互動一樣,各個不同的執行緒之間也會存在資源的共享問題。為了解決多執行緒之間對資源訪問的同步和互斥問題,我們需要了解執行緒同步機制。第一種機制 互斥鎖 互斥鎖是一種簡單的加鎖方法,可以使單個執行緒進行對資源訪問的原子操作。互斥鎖的基本操作就是加鎖和解鎖。互斥鎖主要包含以下函式 1 初始化函式 ...

執行緒同步與互斥

1.執行緒互斥 執行緒互斥是指某一資源同時只允許乙個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。同步就是協同步調,按預定的先後次序進行執行。如 你說完,我再說。同 字從字面上容易理解為一起動作 其實不是,同 字應是指協同 協助 互相配合。如程序 執行...

執行緒的同步與互斥

進行多執行緒程式設計,因為無法知道哪個執行緒會在哪個時候對共享資源進行操作,因此讓如何保護共享資源變得複雜,通過下面這些技術的使用,可以解決 執行緒之間對資源的競爭 1.互斥量mutex 2.訊號燈semaphore 3.條件變數 conditions mutex 互斥鎖線程控制 1 互斥鎖是用一種...