当前位置: 首页 > news >正文

优秀seo网站枸橼酸西地那非片功效效及作用

优秀seo网站,枸橼酸西地那非片功效效及作用,企业建设网站优势,网站域名注册人查询CyclicBarrier(循环屏障) 直译为可循环使用(Cyclic)的屏障(Barrier)。它可以让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开…

CyclicBarrier(循环屏障) 直译为可循环使用(Cyclic)的屏障(Barrier)。它可以让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续工作

CyclicBarrier构造函数

public CyclicBarrier(int parties);//parties表示屏障拦截的线程数量
public CyclicBarrier(int parties, Runnable barrierAction);//parties表示屏障拦截的线程数量,在线程到达屏障时,优先执行barrierAction

应用场景: CyclicBarrier可以用于多线程计算数据,最后合并计算结果的应用场景。比如现在需要计算10个人12个月内的工资详细,可以将线程分为10个,分别计算每个人的工资,最后,再用barrierAction将这些线程的计算结果进行整合,得出最后结果。

CountDownLatch与CyclicBarrier:
CountDownLatch是一个同步的辅助类,允许一个或多个线程,等待其他一组线程完成操作,再继续执行。
CyclicBarrier是一个同步的辅助类,允许一组线程相互之间等待,达到一个共同点,再继续执行。
区别:

  1. CountDownLatch的计数器只能使用一次。而CyclicBarrier的计数器可以使用reset() 方法重置。所以CyclicBarrier能处理更为复杂的业务场景,比如如果计算发生错误,可以重置计数器,并让线程们重新执行一次
  2. CyclicBarrier还提供getNumberWaiting(可以获得CyclicBarrier阻塞的线程数量)、isBroken(用来知道阻塞的线程是否被中断)等方法。
  3. CountDownLatch会阻塞主线程,CyclicBarrier不会阻塞主线程,只会阻塞子线程。

代码实例:
假设要分别计算员工1和员工2的工资,并在都计算完之后进行整合操作,代码实现逻辑如下

package com.concurrency.yuxin.demo;import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;public class CyclicBarrierDemo {public static void main(String[] args) throws InterruptedException{CyclicBarrier cyclicBarrier = new CyclicBarrier(2, new Runnable() {@Overridepublic void run() {System.out.println("汇总已分别计算出的两个员工的工资");}});Thread thread1 = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("计算出员工1的工资");try {cyclicBarrier.await();} catch (InterruptedException e) {e.printStackTrace();} catch (BrokenBarrierException e) {e.printStackTrace();}}}, "thread1");Thread thread2 = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("计算出员工2的工资");try {cyclicBarrier.await();} catch (InterruptedException e) {e.printStackTrace();} catch (BrokenBarrierException e) {e.printStackTrace();}}}, "thread2");thread1.start();thread2.start();System.out.println("====end====");}}

输出结果:

====end====
计算出员工1的工资
计算出员工2的工资
汇总已分别计算出的两个员工的工资

从输出结果可以看出
1. 主线程未被阻塞
2. barrierAction在各线程执行结束之后触发

http://www.15wanjia.com/news/18759.html

相关文章:

  • 上海高端网页设计公司热狗网站关键词优化
  • 做电商网站需要会些什么问题免费注册个人网站
  • 做网店装修的网站有哪些内容排名前十的大学
  • 网站分析 工具云服务器免费
  • 中学网站域名用什么用在线crm
  • wordpress产品页布局金华seo
  • 中国建设银行报名网站淘客推广
  • 微信 网站建设制作一个网站大概需要多少钱
  • 网站的引导页怎么做的seo外包品牌
  • 猪八戒网站做推广靠谱吗seo服务包括哪些
  • 怎样做公司自己的官方网站北京seo服务销售
  • 安徽省建设法治协会网站模拟搜索点击软件
  • 企业网站排名要怎么做成都百度推广
  • 做网站的费用是多少钱大数据营销软件
  • 厦门制作网站企业seo是什么部门
  • 国际国内时事新闻长沙seo关键词排名
  • 商城建设方案赣州seo培训
  • 自由型网站百度统计代码
  • 天津网站建设zmadseo搜索引擎优化技术教程
  • 网站开发服务费计入什么科目百度竞价排名事件分析
  • 互联网网站怎么做seo网络推广排名
  • 合肥市城乡建设局网站首页网站关键词排名外包
  • wap网站 微信登录网站搜索排名优化软件
  • 网站建设业务好跑吗贵阳关键词优化平台
  • 长景园林这个网站谁做的semseo是什么意思
  • 甘特图模板关于网站建设seo关键词推广多少钱
  • 做音乐的网站设计网店推广方案策划书
  • 如何做校园网站优化大师win7官方免费下载
  • 做软件外包公司成都官网seo费用
  • 淮安网站开发seo网站培训班