回覆列表
  • 1 # 使用者8852944140293

    訊號量與互斥鎖之間的區別:

    1. 互斥量用於執行緒的互斥,訊號量用於執行緒的同步。

    這是互斥量和訊號量的根本區別,也就是互斥和同步之間的區別。

    互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。

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

    2. 互斥量值只能為0/1,訊號量值可以為非負整數。

    也就是說,一個互斥量只能用於一個資源的互斥訪問,它不能實現多個資源的多執行緒互斥問題。訊號量可以實現多個同類資源的多執行緒互斥和同步。當訊號量為單值訊號量是,也可以完成一個資源的互斥訪問。

    3. 互斥量的加鎖和解鎖必須由同一執行緒分別對應使用,訊號量可以由一個執行緒釋放,另一個執行緒得到。

  • 中秋節和大豐收的關聯?
  • 穆雷倒地,貝弗利去看望,為何莫里斯直接將貝弗利拉走?