管程
為什麼要引入管程
1、訊號量機制存在的問題:編寫程式困難、易出錯
2、能不能設計一種機制,讓程式設計師寫程式時不需要再關注複雜的PV操作,讓寫程式碼更輕鬆呢?
3、1973年, Brinch Hansen首次在程式設計語言( Pascal)
中引入了“管程”成分。一種高階同步機制
簡介
以下這些概念看起來都很官方,很繞口,其實通俗來說,把管程理解成JAVA中的類就行了
管程是一種特殊的軟體模組,由這些部分組成:
1、區域性於管程的共享資料結構說明;
2、對該資料結構進行操作的一組過程
3、對區域性於管程的共享資料設定初始值的語句;
4、管程有一個名字
Tips:“過程”其實就是“函式”
管程的基本特徵:
1、區域性於管程的資料只能被區域性於管程的過程所訪問
2、一個程式只有通過呼叫管程內的過程才能進入管程訪問共享資料;
3、每次僅允許一個程式在管程內執行某個內部過程。
擴充1:用管程解決生產者、消費者問題
擴充2:Java中類似於管程的機制
Java中,如果用關鍵字synchronized
來描述一個函式,那麼這個函式同一時間段內只能被一個執行緒呼叫
總結
相關文章
- 管程(Monitor)概念及Java的實現原理Java
- 作業系統之程式管理:16、管程作業系統
- 執行緒通訊舉例1 管程法執行緒
- Java 多執行緒共享模型之管程(上)Java執行緒模型
- GitHub 託管程式碼的部分 fatal: remote origin already existsGithubREM
- 一個基於SpringBoot實現的影像託管程式Spring Boot
- 如何使用 loguru 接管程式的所有日誌輸出?
- 併發程式設計基礎 - 管程模型和synchronized原子性程式設計模型synchronized
- .Net 7 的AOT的程式比託管程式碼更容易破解?
- Go語言將接管程式設計世界的五個原因 | BradGo程式設計
- 為了帶你精通 Java AQS,我畫了 40 張圖,從管程模型講起!JavaAQS模型
- 杜拜發行虛擬資產許可證!監管政策不斷升級!推動全球加密監管程式!加密