管程

来源:互联网 发布:易语言js教程 编辑:程序博客网 时间:2024/04/25 07:04

管程主要是用来解决信号量,希望统一临界区,共享数据可以用。有以下四个特点:1.只允许一个进程在管程中活动;2.管程的互斥是管程自身的特性,比信号量机制更加安全,使用起来更方便;3.实现复杂;4.通过四个函数方式访问。

管程的一般结构:

struct Monitor{    管程内部的变量说明;    condition  条件变量列表;    define  函数或方法;    use  函数或方法;    void 函数名() {}    ...    void 函数名() {}    void init()    {        对管程中的局部变量进行初始化;    }};
use使用的函数有四个原语,分别是wait()——等待原语,阻塞当前进程;signal()——发信号原语,唤醒条件变量等待进程,离开管程;check()——检查原语,检查管程是否可用,可用则进入,否则待调用;release()——释放原语,释放管程,检查是否有待调进程,有则唤醒待调进程,否则开放管程

0 0
原创粉丝点击