闭锁: 等待一组操作结束,在执行相关操作,闭锁时一次行操作,一旦进入终止操作,就不能重置
Barrier 栅栏:等待所有线程到达栅栏在执行
一、CyclicBarrier: 可以反复在栅栏集合
方法:
CyclicBarrier await // 当线程到达栅栏时调用await 方法,这个方法将一直阻塞,
// 直到所有的线程到达栅栏,所有线程将被释放,
// 如果调用await 失败或者超时,抛出 BrokenBarrierException
// 如果释放成功,将为每一个线程返回一个唯一的到达索引号,
// 这些索引可以选出一个领导线程,在下次执行时做一些特殊的事情
二、Exchange :它是一个两方栅栏(twe-party),各方在栅栏出进行数据交换
当双方执行不对称交换时很有用,例如一个线程向缓冲区写入数据,另一个线程从缓冲区中读取。两个线程通过 Exchange 交换数据时,可以把一方的数据安全的交给另一方。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于