cyclicbarrier如何让一段程序并发的执行并最终汇总结果

cyclicbarrier  时间:2021-07-16  阅读:()

分库的数据用java怎么并行查询

如果使用java多线程查询,必须使用CyclicBarrier,等待所有结果都查询完成合并结果集,或者使用dblink,然后HINT方式使用并行Parallell,利用数据的并行技术进行查询

求大神,java中同步器的使用方法、

同步器Semaphore(一) 同步器CyclicBarrier(二) 同步器CountDownLatch(三) 同步器Exchanger(四) 想了解详细:/category/149927

java中怎样实现多线程执行的结果相加

import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; /** 单独的计算线程,比如计算{1...10}的相加 @author zhaohb */ public class CounterThread extends Thread{ private int start; private int end; private CyclicBarrier barrier ; public CounterThread(int id,int start, int end,CyclicBarrier barrier) { this.start = start; this.end = end; this.barrier = barrier; setName("Thread-"+id+" "); } @Override public void run() { int count = 0; for(int i=start;i<end+1;i++){ count += i; } Counter.totalCount(count); try { barrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } } } import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** 测试类入口 @author zhaohb */ public class CounterTest { public static void main(String[] args) { //CyclicBarrier指定了当10个线程运行结束时候,可以进行最后结果展示了 CyclicBarrier barrier = new CyclicBarrier(10,new TotalTask(new Counter())); ExecutorService executorService = Executors.newCachedThreadPool(); for(int i=0;i<10;i++){ int start = i*10+1; int end = start + 9; CounterThread counterThread = new CounterThread(i,start, end,barrier); executorService.execute(counterThread); } executorService.shutdown(); } } /** 线程结果计算:将单独的线程的计算的结果相加,汇总的到总的结果 @author zhaohb * */ class Counter { private static int count =0; public synchronized static int totalCount(int perCount){ count += perCount; return count; } public int totalResult(){ return count; } } /** 最后结算展示线程 @author zhb * */ class TotalTask implements Runnable{ private Counter counter ; public TotalTask(Counter counter){ this.counter = counter; } @Override public void run() { System.out.println("所有线程运行完毕,总结果为:"); int total = counter.totalResult(); System.out.println(total); } }

CountDownLatch和CyclicBarrier的区别

这两天写多线程时,用到了CyclicBarrier,下意识的认为CyclicBarrier和CountDownLatch作用很像,就翻阅资料查了一下,说一下他们的区别吧 CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下 CountDownLatch CyclicBarrier 减计数方式 加计数方式 计算为0时释放所有等待的线程 计数达到指定值时释放所有等待线程 计数为0时,无法重置 计数达到指定值时,计数置为0重新开始 调用countDown()方法计数减一 调用await()方法只进行阻塞 对计数没任何影响 调用await()方法计数加1 若加1后的值不等于构造方法的值 则线程阻塞 不可重复利用 可重复利用

如何让一段程序并发的执行并最终汇总结果

使用CyclicBarrier 和CountDownLatch都可以,使用CyclicBarrier 在多个关口处将多个线程执行结果汇总,CountDownLatch 在各线程执行完毕后向总线程汇报结果。

RAKsmart美国VPS上市,活动期间5折抢购仅$30,$1.99/月

RAKsmart机房将于7月1日~7月31日推出“年中大促”活动,多重惊喜供您选择;爆款I3-2120仅30美金秒杀、V4新品上市,活动期间5折抢购、爆款产品持续热卖、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量产品超低价热卖。美国VPS、日本VPS及香港VPS享全场7折优惠;爆款VPS $ 1.99/月限量秒杀,10台/天,售完即止, VPS 7折优惠码:VPS-TP-disRAKsmar...

Vultr新用户省钱福利,最新可用优惠码/优惠券更新

如今我们无论线上还是线下选择商品的时候是不是习惯问问是不是有优惠活动,如果有的话会加速购买欲望。同样的,如果我们有准备选择Vultr商家云服务器的时候,也会问问是不是有Vultr优惠码或者优惠券这类。确实,目前Vultr商家有一些时候会有针对新注册用户赠送一定的优惠券活动。那就定期抽点时间在这篇文章中专门整理最新可用Vultr优惠码和商家促销活动。不过需要令我们老用户失望的,至少近五年我们看到Vu...

VirtVPS抗投诉瑞士VPS上线10美元/月

专心做抗投诉服务器的VirtVPS上线瑞士机房,看中的就是瑞士对隐私的保护,有需要欧洲抗投诉VPS的朋友不要错过了。VirtVPS这次上新的瑞士服务器采用E-2276G处理器,Windows/Linux操作系统可选。VirtVPS成立于2018年,主营荷兰、芬兰、德国、英国机房的离岸虚拟主机托管、VPS、独立服务器、游戏服务器和外汇服务器业务。VirtVPS 提供世界上最全面的安全、完全受保护和私...

cyclicbarrier为你推荐
ipv6无网络访问权限win7本地连接IPv4和IPv6都无网络访问权限md5值游戏安装包的MD5值怎么用?md5值文件名后缀为MD5是什么文件。知识库管理系统急求一款电子文档管理系统,有好用的推荐下~?最开放的浏览器目前最好的游览器?备忘录模式Java中常用的设计模式有哪些?请详细说明一下工厂模式。inode智能客户端win7如何使用校园网iNode智能客户端vipjrvipjr怎么样?有真实体验的来说一下数秦科技天津数沃科技公司怎么样?待遇和发展如何?有人知道么?radius认证如何写一个C#的Radius认证客户端
域名空间代理 四川虚拟主机 中国万网域名注册 江西服务器租用 景安vps 3322动态域名 主机屋 踢楼 便宜服务器 cdn服务器 美国主机代购 免费ftp空间 bgp双线 qq对话框 免费dns解析 Updog 联通网站 lamp是什么意思 空间服务器 网站加速 更多