美文网首页
管程模型

管程模型

作者: zc_sunny | 来源:发表于2021-02-01 19:54 被阅读0次

    一:并发模型

    在管程模型里,共享变量和对共享变量的操作是被封装起来的,图中最外层的框就代表封装的意思。框的上面只有一个入口,并且在入口旁边还有一个入口等待队列。当多个线程同时试图进入管程内部时,只允许一个线程进入,其他线程则在入口等待队列中等待。管程里还引入了条件变量的概念,而且每个条件变量都对应有一个等待队列,如下图,条件变量 A 和条件变量 B 分别都有自己的等待队列。

    MESA管程模型.png

    二:Java基于MESA管程模型实现

    1:互斥锁均是基于MESA管程模型的,e.g:synchronized,ReentrantLock等。
    2:管程内部的条件变量是基于锁的,因此JUC下的Condition是通过Lock而来的,即Condition = lock.newCondition()。
    3:JUC通过 Lock 和 Condition 两个接口来实现管程,其中 Lock 用于解决互斥问题,Condition 用于解决同步问题。

    相关文章

      网友评论

          本文标题:管程模型

          本文链接:https://www.haomeiwen.com/subject/rfystltx.html