09 2015 档案
摘要:信号量Semaphore是一个控制访问多个共享资源的计数器,它本质上是一个“共享锁”。 Java并发提供了两种加锁模式:共享锁和独占锁。前面LZ介绍的ReentrantLock就是独占锁。对于独占锁而言,它每次只能有一个线程持有,而共享锁则不同,它允许多个线程并行持有锁,并发访问共享资源。 独占锁它所采用的是一种悲观的加锁策略, 对于写而言为了避免冲突独占是必须的,但是对于读就没有必要了,因...
阅读全文
摘要:在看Condition之前,我们先来看下面这个例子: 工厂类,用来存放、取出商品: public class Depot { private int depotSize; //仓库大小 private Lock lock; //独占锁 public Depot(){ depotSize = 0; l...
阅读全文