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

网站建设遇到哪些危险seo顾问服务 乐云践新专家

网站建设遇到哪些危险,seo顾问服务 乐云践新专家,2023最火的十大新闻,wordpress 素材站模板Phaser是一个相对较新且功能强大的同步原语#xff0c;它于Java 7中引入#xff0c;用于协调并行任务的执行。与CyclicBarrier和CountDownLatch等传统的同步工具相比#xff0c;Phaser提供了更灵活和更高级的功能#xff0c;特别是在处理动态和可变的并行任务集合时。 1.P…Phaser是一个相对较新且功能强大的同步原语它于Java 7中引入用于协调并行任务的执行。与CyclicBarrier和CountDownLatch等传统的同步工具相比Phaser提供了更灵活和更高级的功能特别是在处理动态和可变的并行任务集合时。 1.Phaser基本概念 Phaser是一个可重用的同步屏障它允许一组线程互相等待直到所有线程都到达某个屏障barrier point为止。但与CyclicBarrier不同的是Phaser支持动态调整参与的线程数并且允许线程在一个phaser阶段完成后注册参与下一个阶段。 每个Phaser对象都有一个整数表示的阶段phase计数每个阶段可以看作是一组并行任务的一个协调点。当所有注册的线程通过调用arrive()或arriveAndAwaitAdvance()方法到达一个阶段时该阶段就会结束所有等待的线程将被释放以继续执行同时阶段计数会增加。 2.构造函数和关键方法 构造函数 Phaser() 创建一个新的Phaser对象其初始阶段计数为0且没有注册的参与者。这通常用于层次结构的Phaser其中子Phaser会动态地注册到父Phaser。Phaser(int parties) 创建一个新的Phaser对象并初始化给定数量的参与者。这里的parties表示在Phaser更改阶段之前必须通过调用arriveAndAwaitAdvance()或arrive()方法的线程数。Phaser(Phaser parent) 创建一个新的Phaser对象并将其关联到给定的父Phaser。子Phaser的终止会影响到父Phaser的终止但反之则不然。此构造函数创建的Phaser初始时没有注册的参与者。Phaser(Phaser parent, int parties) 创建一个新的Phaser对象它既有父Phaser又有初始注册的参与者数量。这个构造函数结合了前两个构造函数的功能。 关键方法 arrive()表示当前线程已经完成了当前阶段的工作并减少到达该阶段的线程数。arriveAndAwaitAdvance()与arrive()类似但它还会使当前线程等待其他线程到达此阶段然后一起进入下一个阶段。awaitAdvance(int phase)等待直到Phaser的当前阶段改变为给定的phase或者当前线程被中断。register()在当前阶段增加一个未到达的线程。这允许动态地添加新的参与者。bulkRegister(int parties)一次性注册多个未到达的线程。 3.Phaser的优势 灵活性与CyclicBarrier相比Phaser允许在运行时动态地添加或移除参与者。多阶段支持Phaser支持多个协调点而不仅仅是单个屏障。可重用性一旦所有线程到达一个阶段Phaser可以自动地或手动地重置为下一个阶段而不需要重新创建。 4.使用Phaser实现并行计算 import java.util.concurrent.Phaser; public class PhaserExample { public static void main(String[] args) { final int numberOfTasks 10; final Phaser phaser new Phaser(numberOfTasks); // 创建一个Phaser初始参与者数量为10 for (int i 0; i numberOfTasks; i) { final int taskID i; new Thread(() - { System.out.println(Task taskID is starting.); // 模拟计算工作 try { Thread.sleep((long) (Math.random() * 1000)); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Task taskID is finishing.); phaser.arrive(); // 表示任务完成 }).start(); } // 等待所有任务完成 phaser.awaitAdvance(phaser.getPhase()); System.out.println(All tasks are complete.); } }运行结果 Task 1 is starting. Task 2 is starting. Task 0 is starting. Task 4 is starting. Task 3 is starting. Task 5 is starting. Task 6 is starting. Task 7 is starting. Task 8 is starting. Task 9 is starting. Task 1 is finishing. Task 4 is finishing. Task 2 is finishing. Task 8 is finishing. Task 6 is finishing. Task 3 is finishing. Task 7 is finishing. Task 9 is finishing. Task 0 is finishing. Task 5 is finishing. All tasks are complete.在这个例子中我们创建了一个包含10个任务的Phaser每个任务都在它自己的线程中运行。当每个任务完成时它会通过调用arrive()方法通知Phaser。主线程通过调用awaitAdvance()方法等待所有任务完成。 注意虽然这个例子使用了固定数量的任务但Phaser的真正优势在于能够处理动态添加或移除的并行任务。通过调用register()和arrive()方法可以在任何时候增加新的参与者到当前的阶段中。 Phaser是Java并发工具包中一个强大而灵活的组件它提供了协调并行任务执行的高级机制。在处理复杂的多线程问题时考虑使用Phaser可以使代码更加简洁且易于管理。 5.总结 Phaser是Java并发工具包中一个强大而灵活的组件它提供了协调并行任务执行的高级机制。在处理复杂的多线程问题时考虑使用Phaser可以使代码更加简洁且易于管理
http://www.hkea.cn/news/14529752/

相关文章:

  • 做盗链电影网站怎么样大连建站系统模板
  • 迪庆州住房和城乡建设局网站网上购物商城官网入口
  • 建设网站前准备资料学校招标网站建设
  • 学生兼职网站开发课程网站建设规划
  • 网站禁止ping长沙装修公司招聘信息
  • 网站好坏怎么分析博山区住房和城乡建设局网站
  • 北京城市建设档案馆网站wordpress 搜索词
  • 外贸网站海外推广网页模版比较出名的网站
  • 网站APP注册做任务我做的电影网站为什么百度搜索不到
  • 网站建设需要备案网页界面设计的主要内容
  • 网站 建设文档百度云资源链接分享群组
  • 响应式网站用什么语言做网站的创始人
  • 学做网站怎么样汶上县建设局官方网站
  • 做ppt用什么网站交通局网站建设方案策划书
  • 广告费内包括网站建设北京企业建站服务中企
  • 设计的网站源代码怎么做南宁推广平台
  • 专业建设网站的企业用动易建设网站教程
  • 网站举报平台12315外国外贸论坛
  • 网站建设方案设计下载ps软件免费版2022
  • 局域网建设网站工具中文商城响应式html网站模板
  • 网站虚拟服务器苏州网站排名优化报价
  • 阿里巴巴网站建设免费淘宝网站的建设目的是什么
  • 线上做网站赚钱昆明百度网站建设
  • wordpress 订阅者温州网站优化推广方案
  • 网站开发都需要什么工作做网站用什么源码最好
  • dell公司网站设计特色东莞app下载
  • 3g微网站是什么品牌网站推广方案
  • 可以随意做配搭的网站asp.net网站项目
  • 郑州个人网站制作公司百度站长工具网站认证
  • 与小学生一起做网站为什么做企业网站