Java并发编程实战~CyclicBarrier

 用 CyclicBarrier 实现线程同步

线程 T1 和 T2 要做到步调一致,都完成后通知到线程 T3

        创建了一个计数器初始值为 2 的 CyclicBarrier,你需要注意的是创建 CyclicBarrier 的时候,我们还传入了一个回调函数,当计数器减到 0 的时候,会调用这个回调函数。

        CyclicBarrier 的计数器有自动重置的功能,当减到 0 的时候,会自动重置你设置的初始值。

// 订单队列
Vector<P> pos;
// 派送单队列
Vector<D> dos;
// 执行回调的线程池 
Executor executor = Executors.newFixedThreadPool(1);
final CyclicBarrier barrier =new CyclicBarrier(2, ()->{executor.execute(()->check());});void check(){P p = pos.remove(0);D d = dos.remove(0);// 执行对账操作diff = check(p, d);// 差异写入差异库save(diff);
}void checkAll(){// 循环查询订单库Thread T1 = new Thread(()->{while(存在未对账订单){// 查询订单库pos.add(getPOrders());// 等待barrier.await();}});T1.start();  // 循环查询运单库Thread T2 = new Thread(()->{while(存在未对账订单){// 查询运单库dos.add(getDOrders());// 等待barrier.await();}});T2.start();
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梦中的婚礼

让女孩听了陶醉的曲子梦中的婚礼 :http://player.youku.com/player.php/sid/XMjA1ODc3MTI/v.swf 电脑键盘弹奏 梦中的婚礼 :http://player.youku.com/player.php/sid/XMzMzNzQyMDA/v.swf 转载于:https://www.cnblogs.com/cube/archive/2008/07/19/1246736.html

C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列&#xff1a; d, d1, d111, d113, d11231, d112213111, … 它从不等于 1 的数字 d 开始&#xff0c;序列的第 n1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d&#xff0c;所以就是 d1&#xff1b;第 2 项是…

DeepMind提出图形的「深度生成式模型」,可实现「任意」图形的生成

原文来源&#xff1a;arXiv作者&#xff1a;Yujia Li、Oriol Vinyals、Chris Dyer、Razvan Pascanu、Peter Battaglia 「雷克世界」编译&#xff1a;嗯~阿童木呀、KABUDA一般来说&#xff0c;图形是基本的数据结构&#xff0c;它在诸如知识图、物理和社会交互、语言和化学等许多…

eviews曲线图怎么做_【干货速递】Eviews:你不可不知的经典问答!

更多精彩内容请关注211统计课堂计量经济学是分析啥的&#xff1f;01计量经济学的主要用途或目的主要有两个方面&#xff1a;1.理论检验。这是计量经济学用途最为主要的和可靠的方面。这也是计量经济学本身的一个主要内容。2.预测应用。从理论研究和方法的最终目的看&#xff0c…

感恩的心

不气歌&#xff08;一&#xff09; 他人气我我不气&#xff0c;我本无心他来气。 倘若生气中他计&#xff0c;气出病来无人替。 请来医生把病治&#xff0c;反说气病治非易。 茶不思来饭无味&#xff0c;通宵达旦不入睡。 倘你伸腿离我去&#xff0c;撇我一人活受罪。 奉…

Python-OpenCV 图像与视频处理

来源&#xff1a;https://segmentfault.com/a/1190000003742481 一直断断续续的用过几次 OpenCV&#xff0c;感觉熟练掌握它的使用方法已经变的非常必要了&#xff0c;正好找到一个很不错的英文教程&#xff0c;就以此为起点&#xff0c;详细记录一下对 OpenCV 的学习过程吧。 …

C++学习之路 | PTA乙级—— 1086 就不告诉你 (15 分)(精简)

1086 就不告诉你 (15 分) 做作业的时候&#xff0c;邻座的小盆友问你&#xff1a;“五乘以七等于多少&#xff1f;”你应该不失礼貌地围笑着告诉他&#xff1a;“五十三。”本题就要求你&#xff0c;对任何一对给定的正整数&#xff0c;倒着输出它们的乘积。 输入格式&#xf…

Java并发编程实战~并发容器

在容器领域一个容易被忽视的“坑”是用迭代器遍历容器&#xff0c;例如在下面的代码中&#xff0c;通过迭代器遍历容器 list&#xff0c;对每个元素调用 foo() 方法&#xff0c;这就存在并发问题&#xff0c;这些组合的操作不具备原子性。 List list Collections.synchronize…

12c oracle 激活_Windows运维之Windows server 2016 安装及ORACLE 12C 安装

本文主要向大家介绍了Windows运维之Windows server 2016 安装及ORACLE 12C 安装&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习Windows运维有所帮助。首先创建虚拟机&#xff0c;选择windows server 2016启动虚拟机&#xff0c;进入安装界面&#xff0c;语言…

工信部:筹建全国首个区块链和分布式记账标准化技术委员会

作者&#xff1a;李秀琴在3.15即将来临之时&#xff0c;我国工信部给区块链行业又带来了一大利好消息。3月12日&#xff0c;工业和信息化部&#xff08;以下简称工信部&#xff09;在官网发布公告称&#xff0c;其正在就筹建全国区块链和分布式记账技术标准化技术委员会事宜开展…

PowerDesigner11技巧

文章来源&#xff1a;http://blog.csdn.net/edeed/archive/2006/02/10/596271.aspx 1、安装PD v11.0版 2、由pdm生成建表脚本时&#xff0c;字段超过15字符就发生错误&#xff08;oracle&#xff09; 原因未知&#xff0c;解决办法是打开PDM后&#xff0c;会出现Database的菜单…

C++学习之路 | PTA乙级—— 1087 有多少不同的值 (20 分)(精简)

1087 有多少不同的值 (20 分) 当自然数 n 依次取 1、2、3、……、N 时&#xff0c;算式 ⌊n/2⌋⌊n/3⌋⌊n/5⌋ 有多少个不同的值&#xff1f;&#xff08;注&#xff1a;⌊x⌋ 为取整函数&#xff0c;表示不超过 x 的最大自然数&#xff0c;即 x 的整数部分。&#xff09; 输入…

Python 的 requests 库的用法

Python爬虫利器一之Requests库的用法&#xff1a;http://cuiqingcai.com/2556.html Python利用Requests库写爬虫&#xff08;一&#xff09;&#xff1a;http://www.jianshu.com/p/e1f8b690b951 Python-第三方库requests详解&#xff1a;http://blog.csdn.net/shanzhizi/articl…

Java并发编程实战~Lock

再造管程的理由 synchronized导致死锁问题&#xff0c;提出了一个破坏不可抢占条件方案&#xff0c;但是这个方案 synchronized 没有办法解决。原因是 synchronized 申请资源的时候&#xff0c;如果申请不到&#xff0c;线程直接进入阻塞状态了&#xff0c;而线程进入阻塞状态…

wpf 点击按钮弹出选择框_WPF-PopupWindow wpf右下角弹出框,通过按钮调用,类似QQ CSharp C#编程 238万源代码下载- www.pudn.com...

文件名称: WPF-PopupWindow下载收藏√ [5 4 3 2 1 ]开发工具: C#文件大小: 90 KB上传时间: 2013-07-24下载次数: 19详细说明&#xff1a;wpf右下角弹出框&#xff0c;通过按钮调用&#xff0c;类似QQ弹出框-wpf lower right corner of the pop-up box文件列表(点击判断是否…

2018 年人工智能会怎么发展?这里有 8 个预测

来源&#xff1a;36氪普华永道发布了一份报告&#xff0c;对人工智能在2018年的发展趋势进行了研究&#xff0c;并做出了8项预测。人工智能非常复杂&#xff0c;而且发展速度很快。任何人都不可能对其未来几年的发展方向做出准确的预测。但就人工智能在2018年的发展趋势来说&am…

异常单据锁定涉及的数据库表

在软件使用过程中出现单据锁定提示&#xff0c;进入系统管理清除单据锁定&#xff0c;再进入软件还是提示单据锁定.&#xff08;包括&#xff1a;审核凭证时提示单据锁定&#xff1b;不能录入期初余额&#xff0c;提示单据锁定&#xff1b;银行对帐单锁定 等情况&#xff09; 造…

C 和 C++ 文件操作详解

来源&#xff1a;http://www.cnblogs.com/likebeta/archive/2012/06/16/2551662.html 来源&#xff1a;http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html CPP 的文件操作 在C中&#xff0c;有一个stream这个类&#xff0c;所有的I/O都以这个“流”类为基础的…

redis 判断存在性_springboot + redis + 注解 + 拦截器 实现接口幂等性校验

提醒&#xff1a;后面有些图片模糊&#xff0c;请点击原文查看清晰图片一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处…

C++学习之路 | PTA乙级—— 1089 狼人杀-简单版(精简)

1089 狼人杀-简单版 (20 分)以下文字摘自《灵机一动好玩的数学》&#xff1a;“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中&#xff0c;1 号玩家说&#xff1a;“2 号是狼人”&#xff0c;2 号玩家说&#xff1a;“3 号是好人”&#xff0c;3 号玩家说&#…