在指定状态点同步任务 Java 并发 API 提供了可以使多个线程在一个指定点同步的工具类 CyclicBarrier,该类前文介绍的 CountDownLatch 有些类似,但是它的一些特殊性使得其更为强大。 CyclicBarrier 类的构造器需要有一个整型参数,这个参数表示在指定点进行同步 的线程个数。当需要同步的线程运行到指定点时,可以调用 CyclicBarrier 对象的 await()方法,然后等待其他线程达到指定点。这个方法使调用线程休眠,等待其他线程的到达。当最后一个需要同步的线程到达并调用 CyclicBarrier 对象的 await()方法 时( 意味着所有的线程均已经到达需要同步的指定点。),所有在此等待的线程都会被唤醒并继续执行。 与CountDownLatch相比CyclicBarrier 可以有不止一个栅栏,它的栅栏(Barrier)可以重复使用(Cyclic)。 另外CyclicBarrier 类有一个有趣的优点,它提供的一个重载的构造方法可以额外接收一个 Runnable 类型的初始化参数。这样的话,CyclicBarrier...