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

seo优秀网站杭州上城区抖音seo有多好

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.mmbaike.com/news/108932.html

相关文章:

  • 论坛网站制作费用吴江seo网站优化软件
  • 怎样做网站关键词优化瑞昌网络推广
  • 如东网站建设网络公司起名
  • 大连龙彩科技的网站在谁家做推广代理登录页面
  • 北京京水建设集团有限公司网站公司网站如何制作设计
  • 网络科技公司网站模板网络营销员岗位的职责与要求
  • 俄罗斯搜索引擎yandex推广入口整站优化系统厂家
  • 深圳网站建站公司seo搜索引擎推广什么意思
  • 营销网站建设网络公司怎么注册一个网站
  • app的设计与开发windows优化大师
  • vue做的小网站bt磁力库
  • 可以上传高清图片的网站并做外链网站排名优化公司
  • 织梦教育网站开发武汉seo公司哪家好
  • 网站建设案例策划百度用户服务中心人工电话
  • 腾博会的网站是什么免费网站收录入口
  • 如今做啥网站能致富10条重大新闻事件
  • 南充网站制作网站seo优化方案项目策划书
  • 网站建设mp4背景佣金高的推广平台
  • 合作制作网站精准营销的概念
  • 免费b2b电子商务网seo推广方法有哪些
  • 滑县网站建设服务灰色词首页排名接单
  • 创意网站建设公司产品优化是什么意思
  • 网站开发协议范本市场营销毕业后做什么工作
  • dw网页制作实训总结长沙靠谱的关键词优化
  • 音乐网站如何做谷歌seo博客
  • 做网站用什么地图好怎么制作网站?
  • 乐清做网站公司拼多多怎么查商品排名
  • 嘉兴网站建设成都网站设计网络营销介绍
  • reeyee网站建设浙江网站seo
  • web网站的部署和发布济南网络优化厂家