java-关卡

1、关卡类似于闭锁,它们都能阻塞一组线程,直到某些事件发生。其中关卡与闭锁关键的不同在于,所有线程必须同时到达关卡点,才能继续处理。闭锁等待的是事件,关卡等待的是其他线程。闭锁进入最终状态就不能被重置了,而关卡被成功突破,所有线程被释放,关卡会重置以备下一次使用。

2、CyclicBarrier允许一个给定数量的成员多次集中在一个关卡点,这在并行迭代算法中非常有用,能把一个问题拆分成一系列相互独立的子问题。CyclicBarrier允许向构造函数传递一个关卡行为;这是一个Runnable,当成功通过关卡的时候会执行,但在阻塞线程被释放之前是不能执行的。

3、Exchanger是关卡的另一种形式,是一种两步关卡,在关卡点会交换数据。线程可以通过Exchanger进行会面,并用完整的缓冲与空缓冲进行交换。

你可能感兴趣的:(java,算法)