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 中的描述

生产消费