-
第21章 – 并发 – 线程阻塞,线程中断,何时以及如何响应中断
Mar182015第21章 – 并发 – 线程阻塞,线程中断,何时以及如何响应中断 1.在线程阻塞时中断 线程的4中状态: (1) 新建(new):线程被创建时,它只会短暂的处于这种状态. 此时线程已经分配了必须的系统资源,并执行了初始化. 此刻线程已经有资格获取CPU时间,之后调度器将把这个线程转变为可运 ...
阅读全文抢沙发
-
第21章 – 并发 – 单一 生产者与消费者,多个生产者与多个消费者(P709)
Mar182015第21章 – 并发 – 单一 生产者与消费者,多个生产者与多个消费者(P709) 1. 单一 生产者与消费者:一个餐馆只有一个厨师(生产者)和一个服务员(消费者) 代码如下,使用单一的锁restaurant.lockObj来协调厨师和服务员. 当meal为null时,服务员等待,厨师开始工作,反之服务员工作,厨师等待. &nbs ...
阅读全文
-
第21章 – 并发 – 死锁,哲学家进餐问题
Mar1820151. 哲学家问题 5个哲学家围城一圈就餐,因为哲学家都比较穷,每个人只能买得起一根筷子,所以5个哲学家就餐 只有5根筷子.因为哲学家通常都是在思考,所以5个哲学家并不是同时进餐.但是当他们进餐时, 必须获取放置在他们左边和右边的筷子,如果他们左边或者右边的筷子已经被别人拿去了,那他就 只有等待别 ...
阅读全文
-
第21章 – 并发 – 新类库中构件 – CountDownLatch
Mar182015第21章 – 并发 – 新类库中构件 – CountDownLatch 1. CountDownLatch 简介 CountDownLatch 有一个初始化count,当这个count不为0时,线程可以调用这个类的await()方法等待. 其他线程可以调用该类的countDown()方法,使得count计数减1,当这个count计数变成0时,所有在该对象 上await的线程 ...
阅读全文
-
第21章 – 并发 – 新类库中构件 – CyclicBarrier
Mar182015第21章 – 并发 – 新类库中构件 – CyclicBarrier CyclicBarrie 简介 CyclicBarrier 初始化时可以传入构造器两个参数,一个int型的 parties表示参与者(线程)的数量. 另一个是一个Runnable,表示所有参与者重新执行之前要执行的任务. 参与者线程中调用CyclicBarrier的await()使得调用该方法的线程开始等 ...
阅读全文
-
第21章 – 并发 – BlcokingQueue
Mar182015第21章 – 并发 – BlcokingQueue 1. BlockingQueue简介 BlockingQueue 是一个接口.要求其实现是线程安全的. BlockingQueue 不接受 null 元素。试图 add、put 或 offer 一个 null 元素时, 某些实现会抛出 NullPointerException。null 被用作指示 poll 操作失败的警戒值。 &nb ...
阅读全文
-
第21章 – 并发 – 同步机制性能测试(Lock,synchronized,Atomic类)(P749)
Mar182015第21章 – 并发 – 同步机制性能测试(Lock,synchronized,Atomic类)(P749) 1. 由执行结果可知: Lock,synchronized,Atomic中,synchronized的性能最差,Atomic性能最好. 但是Atomic类只有在非常简单的情况下才有用,这些情况包括,你只有一个要被修改的Atomic对象, 并且这个对象独立于其他 ...
阅读全文
-
第21章 – 并发 – 新类库中构件 – Semaphore
Mar182015第21章 – 并发 – 新类库中构件 – Semaphore 1. Semaphore 简介 Semaphore 在构造函数中传入一个int参数,表示计数的信号量,在线程中调用Semaphore.acquire()方法时, 检查信号量的值,如果信号量大于0则线程继续执行,然后将信号量减1,如果调用Semaphore.acquire()时, 信号量已经 ...
阅读全文
-
第21章 – 并发 – 新类库中构件 – Exchanger
Mar182015第21章 – 并发 – 新类库中构件 – Exchanger 1. Exchanger 简介 Exchanger 是一个很有意思的类.该类是一个泛型类,在定义该类型的变量时需要指定一种类型. public class Exchanger<V>extends Object 这个是该类的定义. 构造该类型的对象可用 Exchanger<List< ...
阅读全文
-
第21章 – 并发 – 新类库中构件 – PriorityBlockingQueue
Mar182015第21章 – 并发 – 新类库中构件 – PriorityBlockingQueue 1. PriorityBlockingQueue 简介 public class PriorityBlockingQueue <E>extends AbstractQueue<E>implements BlockingQueue<E>, Serializable 该类是一个无界阻塞队列,它使用与类 PriorityQu ...
阅读全文