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

网页网站怎么做的吗企业网站怎么做

网页网站怎么做的吗,企业网站怎么做,微信sdk,网站做微信支付功能CountDownLatch 翻译: 倒计时锁存器,,,,count计数,down停止,Latch锁 解释: 允许一个或多个线程等待,直到在其他线程中执行的一组操作完成的同步辅助不懂?…

CountDownLatch

翻译

倒计时锁存器,,,,count计数,down停止,Latch锁

解释:

  • 允许一个或多个线程等待,直到在其他线程中执行的一组操作完成的同步辅助
  • 不懂?
  • 就是,正常情况下,多线程是同时处于就绪状态,但是,使用了之后,我【线程一】先跑,你们在外面候着

方法

在这里插入图片描述

使用

简单使用

public static void main(String[] args) throws InterruptedException {CountDownLatch countDownLatch = new CountDownLatch(10);for (int i = 0; i < 10; i++) {int finalI = i;new Thread(()->{System.out.println(finalI);countDownLatch.countDown();}).start();}countDownLatch.await();System.out.println("结束了");
}
  • 在线程里使用,每次减少 1
  • await后面的进程需要等到上面的进程执行完毕,才可以执行

问题?

如何使用CountDownLatch使得角色裁判,喊完各就位预备后,发枪,这个两个动作后,运动员才开始跑

需要使用callable接口,而不是runnable接口

复杂使用

裁判类 【Judge】

class Judge implements Callable<String>{private CountDownLatch startCreamLatch;private CountDownLatch startFireLatch;public Judge(CountDownLatch startCreamLatch, CountDownLatch startFireLatch) {this.startCreamLatch = startCreamLatch;this.startFireLatch = startFireLatch;}@Overridepublic String call() throws Exception {scream();this.startCreamLatch.countDown();this.startCreamLatch.await();fire();this.startFireLatch.countDown();this.startFireLatch.await();return "裁判发枪成功";}public void scream (){System.out.println("裁判喊:各就位");}public void fire(){System.out.println("开枪");}
}
  • 定义了scream的CountDownLatch 和 fire的 CountDownLatch
  • 在主类中分别设置倒计时为1,每次执行完,即可以执行下一个

运动员类【runner】

class Runner implements Callable<String>{private CountDownLatch startLatch;public Runner(CountDownLatch startLatch) {this.startLatch = startLatch;}@Overridepublic String call() throws Exception {this.startLatch.await();run();return Thread.currentThread().getName() + "运动员正在运动";}public void run(){System.out.println(Thread.currentThread().getName()+"运动员跑起来了");}
}

主线程【main】

public class Game{public static void main(String[] args) {CountDownLatch startCreamLatch = new CountDownLatch(1);CountDownLatch startFireLatch = new CountDownLatch(1);Judge judge = new Judge(startCreamLatch,startFireLatch);Runner runner = new Runner(startFireLatch);FutureTask futureTask = new FutureTask(judge);new Thread(futureTask).start();for (int i = 0; i < 8; i++) {FutureTask task = new FutureTask(runner);new Thread(task,"第"+String.valueOf(i)+"运动员").start();}}
}
http://www.yidumall.com/news/61224.html

相关文章:

  • 网站制作 广州网站制作流程
  • 给网站做镜像app开发需要多少钱
  • 政府网站建设安全管理办法深圳网络营销推广招聘网
  • 专业b2c电商网站制作百度竞价代运营公司
  • shopex网站备份百度网页制作
  • 域名备案期间网站餐饮营销策划与运营
  • 湘潭平台公司岳阳seo
  • 网站建设的实施方式企业互联网推广
  • 深圳创业补贴是真的吗seo快速排名上首页
  • 沧州好的做网站的公司数据分析软件工具有哪些
  • 网站模版参考加入网络营销公司
  • it运维是做什么的厦门seo百度快照优化
  • 去年做啥网站能致富整合营销传播方案
  • 西凤酒网站建设的目标手机推广app
  • 一个网站服务器多少钱seo需要付费吗
  • wordpress网站上传百度账号购买1元40个
  • 君和网站建设荆州seo推广
  • 内容营销方案百度seo关键词优化排名
  • 网站建设项目的网络图windows优化大师官方下载
  • web可以做3d网站吗网站推广优化排名教程
  • wordpress+修改邮箱设置北京网站优化对策
  • 网站内容页显示不出来百度关键词如何优化
  • 定制化网站一般价格百度指数移动版
  • 现在可以用的网站无锡seo网站管理
  • 做网站需要学习什么知识房地产十大营销手段
  • 河南省建设厅网站师林峰象山关键词seo排名
  • 免费自制网站建设福州seo网站推广优化
  • 做直播网站有哪些外贸新手怎样用谷歌找客户
  • 贵州网站建设维护企业查询系统官网天眼查
  • 网站开发毕业论文参考文献百度指数有什么作用