继续介绍Executor框架,这是第二篇。
在第一篇的基础上,修改Server类的构造函数,使用newFixedThreadPool创建Executor。1
2
3
4public Server() {
// executor = (ThreadPoolExecutor) Executors.newCachedThreadPool();
executor = (ThreadPoolExecutor)Executors.newFixedThreadPool(5);
}
介绍CyclicBarrier使用,以及分析实现原理。
Java 1.8的API描述,允许一批线程到达一个共同屏障点(common barrier point)。在涉及需要线程需要相互等待的场景,可以考虑CyclicBarrier。屏障机制可以重复使用。
介绍CountDownLatch,并发流程控制。
看看Java 1.8的API是怎么说的,一种同步机制,允许一个或者线程等待,直到其他线程执行一些操作完成。CountDownLatch基于一个given count,进行初始化,然后调用await方法,阻塞当前线程的流程。直到其他线程执行countDown方法,直至count变为0。那么阻塞线程被唤醒执行。
CountDownLatch中的count不能被重置