初识java.util.concurrent.CyclicBarrier

原创 2016年06月01日 16:19:15
package learn;


import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadLocalRandom;


public class CyclicBarrierDemo {
private static int num = 4;
public static void main(String[] args) {
ExecutorService service = Executors.newCachedThreadPool();


CyclicBarrier barrier = new CyclicBarrier(num, 
new Runnable(){
@Override
public void run() {
System.out.println("Go go go!");
service.shutdown();
}
}
);

for (int i = 0; i < num; i++)
{
service.submit(new Runnable(){
@Override
public void run() {
try {
Thread.sleep(ThreadLocalRandom.current().nextLong(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}

System.out.println(Thread.currentThread().getName() + " is here!");

try {
barrier.await();
} catch (InterruptedException | BrokenBarrierException e) {
e.printStackTrace();
}
}
});
}
}
}

聊聊高并发(三十)解析java.util.concurrent各个组件(十二) 理解CyclicBarrier栅栏

这篇讲讲CyclicBarrier栅栏,从它的名字可以看出,它是可循环使用的。它的功能和CountDownLatch类似,也是让一组线程等待,然后一起开始往下执行。但是两者还是有几个区别 1. 等待...
  • ITer_ZC
  • ITer_ZC
  • 2014年11月12日 14:00
  • 3037

java.util.concurrent之CyclicBarrier

JDK介绍:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。 举例说明:一群人骑行,有些人骑得快,有些人骑的慢,但是每到一个休息地点必须...

java.util.concurrent包详解:CyclicBarrier和CountDownLatch

CountDownLatch是减计数方式,计数==0时释放所有等待的线程;CountDownLatch当计数到0时,计数无法被重置;CountDownLatch每次调用countDown()方法计数减...

java.util.concurrent中:同步屏障CyclicBarrier

简介 CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才...

Java多线程之concurrent包(五)——CyclicBarrier

CyclicBarrier当线程数达到了CyclicBarrier初始时规定的数目时,所有进入等待状态的线程被唤醒并继续。 后续线程进入,则计数器重新计数,一直循环。CyclicBarrier就象它名...

同步工具类二:可取消异步计算(java.util.concurrent.FutureTask)

FutureTask可处于等待执行、正在执行和执行完成这3

java.util.concurrent 并发框架,异步执行器 Executor

1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Ja...

谈谈java.util.concurrent包的并发处理(转)

浅谈java.util.concurrent包的并发处理(转) 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程...

聊聊高并发(四十二)解析java.util.concurrent各个组件(十八) 任务的批量执行和CompletionService

上一篇讲了ExecutorService关于任务的异步执行和状态控制的部分,这篇说说关于任务批量执行的部分。ExecutorSerivce中关于批量执行的...
  • ITer_ZC
  • ITer_ZC
  • 2015年07月20日 15:16
  • 2420

聊聊高并发(四十三)解析java.util.concurrent各个组件(十九) 任务的定时执行和周期执行

ExecutorService最后一块是定时/周期执行任务的接口ScheduledExecutorService。这篇说说ScheduledExecutorService相关的内容。 Schedule...
  • ITer_ZC
  • ITer_ZC
  • 2015年07月21日 16:15
  • 2709
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初识java.util.concurrent.CyclicBarrier
举报原因:
原因补充:

(最多只允许输入30个字)