理解 mutex,semaphore,monitor(Java
作者:
铜雀春深锁不住 | 来源:发表于
2017-07-04 21:09 被阅读0次what is mutex? in chinese means 互斥锁
what is semaphore? in chinese means 信号量
what is monitor? in chinese means 管程
图片链接:
http://slideplayer.com/slide/4857494/
同步范例
overview
上图给出了三种java中的同步方式:
其中mutex是一个二元semaphores
但是mutex 和 semaphores的区别是
just like this:
mutex
mutex 只用于保护临界区的代码,即一个线程释放mutex锁后,可能又获得同一个锁,会产生饥饿
semaphore
semaphore可以保证锁同步,释放后不会再获取,让别的线程获取锁
管程
monitor基于条件变量
monitor
sync and monitor
bounder buffer
无界缓冲
以无界缓冲为例,生产者 从In 的位置往右写,消费者从Out的位置向右取,当缓冲空时不能取
生产者往缓冲区放一个物品,如果满了就等待;消费者从同一缓冲区取一个物品,如果空了就等待。这个过程就需要同步
生产消费问题
生产者消费者
读写操作需要同步
Sync for Read/Write
生产消费问题在bounded buffer 中的描述
生产消费
本文标题:理解 mutex,semaphore,monitor(Java
本文链接:https://www.haomeiwen.com/subject/lyoxhxtx.html
网友评论