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

非物质文化遗产网站怎么做做网站需要几个人分工

非物质文化遗产网站怎么做,做网站需要几个人分工,怎么做支付网站,做一个购物网站价格文章目录 核心思想#xff1a;火箭发射倒计时 #x1f680;最简单易懂的代码示例代码解析运行流程分析 核心思想#xff1a;火箭发射倒计时 #x1f680; 想象一下发射火箭的场景#xff0c;在按下最终的发射按钮之前#xff0c;必须有好几个系统同时完成自检#xff0… 文章目录 核心思想火箭发射倒计时 最简单易懂的代码示例代码解析运行流程分析 核心思想火箭发射倒计时 想象一下发射火箭的场景在按下最终的发射按钮之前必须有好几个系统同时完成自检比如 燃料系统检查引擎系统检查导航系统检查 控制中心主线程必须等待这3个检查全部报告“正常”后才能下达“发射”指令。 CountDownLatch 就好比是这个场景中的倒计时计数器。 CountDownLatch latch new CountDownLatch(3); 这等于在控制中心设置了一个初始值为 3 的倒计时器。意味着我们需要等待3个检查任务完成。 latch.await(); (等待) 控制中心主线程调用这个方法然后就进入等待状态。它会一直在这里被阻塞直到倒计时器的数字变成 0。 latch.countDown(); (倒数) 每个检查系统工作线程在完成自己的任务后就调用一次这个方法。每调用一次倒计时器的数字就减一。当第三个检查系统也调用了 countDown() 后倒计时器数字变为0await() 的等待结束控制中心主线程被唤醒继续执行后续的发射指令。 最简单易懂的代码示例 下面我们就用代码来模拟这个“火箭发射”的场景。 package CoountDownLatch; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class SimpleCountDownLatchDemo {public static void main(String[] args) throws InterruptedException {// 1. 创建一个 CountDownLatch计数器设置为 3// 意味着我们需要等待3个任务完成final CountDownLatch latch new CountDownLatch(3);// 创建一个线程池来管理我们的检查任务ExecutorService executor Executors.newFixedThreadPool(3);System.out.println(主控室准备发射火箭等待各系统检查...);// 2. 分配3个检查任务给不同的线程for (int i 1; i 3; i) {final String checkerName 检查员- i;executor.submit(() - {try {System.out.println(-- [ checkerName ] 开始进行系统检查...);// 模拟检查耗时Thread.sleep(new Random().nextInt(2000) 1000); // 随机耗时1-3秒System.out.println(... [ checkerName ] 检查完成已报告);} catch (InterruptedException e) {e.printStackTrace();} finally {// 3. 关键任务完成调用 countDown()计数器减一latch.countDown();}});}// 4. 主线程调用 await() 进入等待// 它会一直阻塞在这里直到 latch 的计数器变为 0System.out.println(主控室所有检查任务已派出等待报告...);latch.await();// --- 当所有检查任务都调用了 countDown() 后主线程才会从 await() 返回执行以下代码 ---System.out.println(主控室所有系统检查完成准备发射);System.out.println(3... 2... 1... 火箭发射);// 关闭线程池executor.shutdown();} }代码解析 new CountDownLatch(3): 设置了一个需要3个“报告”才能继续的门闩。executor.submit(...): 我们派出了3个检查员线程去并行工作。latch.countDown(): 这是每个检查员完成工作后必须要做的事——向控制中心报告“我搞定了”。每报告一次倒计时就减一。latch.await(): 这是主线程控制中心的等待点。它会一直卡在这里直到收到全部3个“搞定了”的报告。 运行流程分析 程序启动main 线程打印 “准备发射火箭…”。3个检查员线程被创建并开始并行地执行检查你会看到3条 “开始进行系统检查…” 的日志。main 线程打印 “所有检查任务已派出…” 后立刻调用 latch.await() 并进入阻塞等待。在接下来的几秒内你会看到检查员们随机地、不按顺序地完成他们的工作并打印 “检查完成已报告”。每完成一个latch 的计数就减一。当第三个检查员也完成并调用 countDown() 后latch 的计数变为0。main 线程的 await() 立刻被唤醒程序继续执行打印出最终的 “火箭发射”。 这个模式非常适合一个主线程需要等待多个子任务全部执行完毕后再进行汇总或执行下一步的场景。 流程 定义Latch数量在多线程任务中每次完成就latch.countDown();在主线程中调用latch.await();进入等待它会一直阻塞在这里直到 latch 的计数器变为 0当所有检查任务都调用了 countDown() 后主线程才会从 await() 返回
http://www.hkea.cn/news/14317043/

相关文章:

  • 网站制作新手教程视频seo优化网站推广
  • 做静态网站有什么建议更新带动器
  • 自己做网站价格亚马逊跨境电商简介
  • asp网站模板源码营销网站的渠道构成基本包括
  • 建湖做网站找哪家好机器人网站建设规划书
  • 凡客诚品网站推广WordPress文章生成图片
  • 常州建设银行网站首页清明节网页设计素材
  • ps怎样做网站首页图如何自己开发手机app
  • 互动营销成功案例自己的网站怎么做关键词优化
  • 齐齐哈尔哪里做网站手机网站对企业用户的好处
  • 陕西省建设厅三类人员报名网站哪些软件可以做网页
  • vue做的小网站网络推广培训吧
  • 网站建设验收汇报wordpress+手机应用
  • app界面素材宁波网络seo哪家有名
  • 网站地址地图怎么做手机端网站的区别
  • 白云手机网站建设网络运维工程师求职信
  • 莱阳网站建设安卓程序开发
  • 网站开发与维护视频教程谁有永久免费的服务器
  • 学校建设网站的作用云seo关键词排名优化软件
  • 展示型的网站开发价格苏州网站建设自助建站模板
  • 建个企业网站一年需要多少钱怎么推广平台
  • wordpress做的视听网站discuz网站伪静态设置
  • 做气球装饰可以上哪些网站中小企业建网站多少钱
  • 公司设计品牌公司专业seo培训
  • 专业网站建设企业最好的微网站建设价格
  • 怀集网站建设华为用了哪些网络营销方式
  • 自己做网站用php最快么博物馆网页设计案例
  • 自己能否建设网站可以建网站的路由器
  • 做网站对服务器什么要求高网络工程师要学多久
  • 县信用平台网站建设情况怎样做电影网站