一、知識總覽
二、為什麼要引入管程
1.由于信号量機制存在編寫程式困難、易出錯的問題,于是就想到能不能設計一種機制,讓程式員寫程式的時候不需要再關注複雜的PV操作,而達到寫代碼更輕松的目的呢?于是就引入了管程。
2.管程是一種進階的同步機制,比PV操作更容易操作。
三、管程的定義和基本特征
1.管程是一種特殊的軟體子產品,有這些部分組成:
1)局部于管程的共享資料結構說明;
2)對該資料結構進行操作的一組過程(其實就是“函數”);
3)管程有一個名字。
2.管程的基本特征:
1)局部于管程的資料隻能被局部于管程的過程所通路;
2)一個程序隻有通過調用管程内的過程才能進入管程通路共享資料;
3)每次僅僅允許一個程序在管程内執行某個内部過程。
四、用管程解決生産者消費者問題
注意:引入管程的目的無非就是要更友善的實作程序互斥和同步。
五、管程中需要注意的點
程式員可以用某種特殊的文法定義一個管程,之後其他程式員就可以使用這個管程提供的特定的“入口”(其實就是程式中封裝的思想)很友善的實作程序的同步或者互斥了。