循环使用CyclicBarrier的问题(标题不太好,请进来看看详细问题) 线程任务 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在想能不能在外围再用一个count=1的CountDownLatch。再把我那个类方法把现在写在一个有返回值的方法里。然后外围程序用callable-future方式调用,future有返回值了,就让CountDownLatch执行countDown()。countDown调用完后,再执行初始化那个类的代码。如此反复。不知道行不行。对了,那个exec.shutdown也应该放在一个得到了future的结果之后再调用,也就是把那个匿名runnable接口对象返回一个值....好乱啊!!还有什么别的实现方法吗? while(true){ ExecutorService exec = Executors.newFixedThreadPool(2); Task t1 = new Task(barrier, 1, 3000); Task t2 = new Task(barrier, 2, 1000); exec.submit(t1); exec.submit(t2); exec.shutdown(); while(true){ if(exec.isTerminated()){ break;} else(Thread.sleep(100);) }} public CyclicBarrierTest3() { CyclicBarrier barrier = new CyclicBarrier(3, new Runnable() { @Override public void run() { System.out.println("所有线程都执行完了!"); } }); ExecutorService exec = Executors.newFixedThreadPool(2); for(int i=0;i<10;i++){//循环10次试试 barrier.reset(); Task t1 = new Task(barrier, 1, 3000); Task t2 = new Task(barrier, 2, 1000); exec.submit(t1); exec.submit(t2); try { barrier.await(); System.out.println(now() + "一次循环已经搞定啦。"); } catch (InterruptedException e) { } catch (BrokenBarrierException e) { } } exec.shutdown(); } CyclicBarrier这个事个什么东西,不明白,没有用过的哦 JAVA芯片的前景如何? 什么情况下需重启tomcat 有没有会osworkflow的人啊?帮忙解释下什么意思. JMF播放视频的时候是否有方法选择某一个时间段的视频播放? 通过CompTIA Instructor+的最低分数是多少? 郁闷,连数据库又出问题了 各位,我想学一些java数据库方面的编程,不知要安装配置什么。 求助:关于Eclipse 大家一般都是怎么实现应用程序中的动态图表的? 各位大神有空的来探讨下java的垃圾回收机制吧 java聊天室登陆的问题 谢谢了 Myeclipse 10
再把我那个类方法
把现在写在一个有返回值的方法里。
然后外围程序用callable-future方式调用,
future有返回值了,就让CountDownLatch执行countDown()。
countDown调用完后,再执行初始化那个类的代码。
如此反复。不知道行不行。对了,那个exec.shutdown也应该放在一个得到了future的结果之后再调用,
也就是把那个匿名runnable接口对象返回一个值....好乱啊!!
还有什么别的实现方法吗?
while(true){
ExecutorService exec = Executors.newFixedThreadPool(2);
Task t1 = new Task(barrier, 1, 3000);
Task t2 = new Task(barrier, 2, 1000);
exec.submit(t1);
exec.submit(t2);
exec.shutdown();
while(true){
if(exec.isTerminated()){ break;} else(Thread.sleep(100);)
}
}
public void run() {
System.out.println("所有线程都执行完了!");
}
}); ExecutorService exec = Executors.newFixedThreadPool(2); for(int i=0;i<10;i++){//循环10次试试
barrier.reset();
Task t1 = new Task(barrier, 1, 3000);
Task t2 = new Task(barrier, 2, 1000);
exec.submit(t1);
exec.submit(t2);
try {
barrier.await();
System.out.println(now() + "一次循环已经搞定啦。");
} catch (InterruptedException e) {
} catch (BrokenBarrierException e) {
}
}
exec.shutdown();
}