天天看點

二十、管程

一、知識總覽

二十、管程

二、為什麼要引入管程

1.由于信号量機制存在編寫程式困難、易出錯的問題,于是就想到能不能設計一種機制,讓程式員寫程式的時候不需要再關注複雜的PV操作,而達到寫代碼更輕松的目的呢?于是就引入了管程。

2.管程是一種進階的同步機制,比PV操作更容易操作。

三、管程的定義和基本特征

1.管程是一種特殊的軟體子產品,有這些部分組成:

1)局部于管程的共享資料結構說明;

2)對該資料結構進行操作的一組過程(其實就是“函數”);

3)管程有一個名字。

2.管程的基本特征:

1)局部于管程的資料隻能被局部于管程的過程所通路;

2)一個程序隻有通過調用管程内的過程才能進入管程通路共享資料;

3)每次僅僅允許一個程序在管程内執行某個内部過程。

四、用管程解決生産者消費者問題

二十、管程

注意:引入管程的目的無非就是要更友善的實作程序互斥和同步。

五、管程中需要注意的點

二十、管程

程式員可以用某種特殊的文法定義一個管程,之後其他程式員就可以使用這個管程提供的特定的“入口”(其實就是程式中封裝的思想)很友善的實作程序的同步或者互斥了。

六、總結

二十、管程

繼續閱讀