CyclicBarrier源码分析

CyclicBarrier源码分析

前面分析了CountDownLatch,它的作用是让一个线程等待一个或是一组线程的完成。而今天要分析的CyclicBarrier也是一个作用类似的并发辅助类,它的作用是让一组线程互相等待直到最后一个线程抵达barrier point(栅栏点)。它之所以叫做Cyclic,是因为它是可以重复利用的,所有的线程都抵达barrier point之后,CyclicBar......

AbstractExecutorService实现分析

AbstractExecutorService提供了ExecutorService中submit、invokeAll、invokeAny方法的默认实现。

在AbstractExecutorService中,定义了protected的方法newTaskFor,用于包装Runnable对象或是Callable对象,返回Future对象,默认实现为返回FutureTask。在AbstractEx......

Executor和ExecutorService分析

Executor

Executor中只定义了一个execute方法,可以通过execute方法向Executor中提交可运行的任务(实现Runnable接口)。方法的具体定义如下

void execute(Runnable command)

它提供了一种将任务的提交和任务运行之间的解耦机制。任务具体运行细节,可以有多种机制。在实现层面上,可以直接在提交任务的线程中运行此任务,也可以给......