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 在各线程执行完毕后向总线程汇报结果。

欧路云:美国200G高防云-10元/月,香港云-15元/月,加拿大480G高防云-23元/月

欧路云 主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。由专业人员提供一系列的技术支持!官方网站:https://www.oulucloud.com/云服务器(主机测评专属优惠)全场8折 优惠码:zhuji...

Megalayer美国服务器CN2优化线路30M带宽3独立IP限时月299元

Megalayer 商家算是比较新晋的国内主机商,主要方向是美国、香港、菲律宾等机房的独立服务器为主,以及站群服务器和显卡服务器。同时也有新增价格并不是特别优惠的VPS云服务器。上午的时候有网友问问有没有CN2线路的美国独立服务器的,这里我推荐他选择Megalayer看看,目前也是有活动截止到月底的。Megalayer 商家创办2年左右时间,如果我们初次使用建议月付体验。目前在进行且可能截止到6月...

织梦DEDECMS即将授权收费和维权模式 站长应对的几个方法

这两天在站长群里看到不少有使用DEDECMS织梦程序的朋友比较着急,因为前两天有看到来自DEDECMS,我们熟悉的织梦程序官方发布的公告,将会在10月25日开始全面商业用途的使用DEDECMS内容管理程序的会采用授权收费模式,如果我们有在个人或者企业商业用途的,需要联系且得到授权才可以使用,否则后面会通过维权的方式。对于这个事情,我们可能有些站长经历过,比如字体、图片的版权。以及有一些国内的CMS...

cyclicbarrier为你推荐
一物一码一袋一码和一物一码有什么区别?诺诺云代账诺诺云代账有什么优势?微信收款语音播报怎么设置怎么修改微信收款提示音wmiprvse为什么会有wmiprvse.exe和wmiprvse 这两个 算不算病毒?bloomfilter如何用Java写一个爬虫丁奇海贼王里“D”的意思是什么?弹幕网站求弹幕网邀请码!暴力破解密码8位密码暴力破解要多久pci数据捕获和信号处理控制器华硕pci数据捕获和信号处理控制器出现黄色叹号该下载什么驱动桌面管理系统卸载桌面图标管理软件fences之后桌面无法显示了
虚拟主机推荐 美国vps主机 黑龙江域名注册 vps动态ip 播放vps上的视频 域名服务器的作用 hawkhost优惠码 ion 美国主机评论 搬瓦工官网 60g硬盘 香港新世界电讯 镇江联通宽带 免费网站申请 100m空间 爱奇艺vip免费试用7天 备案空间 美国迈阿密 云销售系统 umax 更多