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

腾讯云新用户省钱秘笈购买云服务器

目前国内云计算市场竞争异常激烈,尤其是国内的腾讯云、阿里云、景安等商家促销活动一波接一波的进行,对于有需要的用户确实得到不小的实惠。但是这样给予国内的主机商确实是比较大的打击,毕竟这些商家的背景和实例强劲,即便是贴本补贴优惠,也是不怕的。前两年阿里一家各种活动促销,确实在国内市场占据主要的市场地位,腾讯云开始两年没有较大的吸引用户,不过这两年的发展还是比较稳健的。我们很多网友在之前肯定也享受到一些...

腾讯云2核4GB内存8M带宽 年74元

一般大厂都是通过首年才有可以享受爆款活动,然后吸引我们注册他们商家达到持续续费和购买的目的。一般只有大厂才能有这样的魄力和能力首年亏本,但是对于一般的公司和个人厂家确实难过,这几年确实看到不少的同类商家难以生存。这里我们可以看到有对应的套餐方案。不过这两个套餐都是100%CPU独享的,不是有某云商家限制CPU的。但是轻量服务器有个不好的就是带宽是较大且流量是限制的额,分别是1GB和1.2TB月流量...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

cyclicbarrier为你推荐
溢出隐藏关于CSS样式的问题,怎么可以让div的内容自动换行,溢出隐藏,还要加省略号?jql建筑设计图纸上JQL 梁,是不是地下正负零基础梁?急急!inode智能客户端inode智能客户端无法正常启动,根本开都开不了spawningVC中Error spawning cl.exe错误的解决方法.有b吗34B的胸围有多大?民生电商民生电商招的仓库操作工是干什么的qq业务中心QQ业务怎么开通?菜霸为什么现在都在说生意难做?国外社交网站有什么外国的交友网站?拜托各位大神杭州营销型网站易搜的易搜网络
中国域名交易中心 香港主机 创宇云 标准机柜尺寸 adroit 微软服务器操作系统 路由跟踪 电信宽带测速软件 存储服务器 美国代理服务器 webmin linuxvi vim命令 dbank 装修瓦工培训 电脑主机 个人web服务器 win7配置web服务器 dhcp服务器是什么 邮件服务器是什么 更多