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

无锡自适应网站开发查企业用什么软件

无锡自适应网站开发,查企业用什么软件,建企业网站怎么做,酒店网站如何做Java Fork/Join框架:三大核心组件深度解析-CSDN博客 讨论过CountedCompleter 与 RecursiveTask 的差异,这里做一个总结。 CountedCompleter 在排序中应用见:深入浅出 Arrays.sort(DualPivotQuicksort):如何…

Java Fork/Join框架:三大核心组件深度解析-CSDN博客 讨论过CountedCompleter 与 RecursiveTask 的差异,这里做一个总结。

CountedCompleter 在排序中应用见:深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序-CSDN博客

CountedCompleter 相比传统的 RecursiveTask 在特定场景下具有显著优势,尤其在​​任务完成后需要自动触发后续操作​​或​​任务结构动态变化​​时。以下是详细分析及代码示例的解析:


​核心优势对比​

​特性​CountedCompleterRecursiveTask
​结果依赖​不强制返回结果,专注完成动作需返回子任务结果并显式合并
​完成触发机制​子任务完成后自动调用 onCompletion()需手动 join() 子任务并处理结果
​任务依赖管理​通过挂起计数(pending count)自动管理需手动调用 fork()/join() 管理
​资源开销​避免阻塞线程,减少上下文切换join() 可能阻塞线程增加开销
​动态子任务​支持运行时动态增加子任务子任务数量需预先确定

​代码示例解析:并行排序的优化点​

1. ​​任务链自动触发合并(onCompletion)​

// Sorter.onCompletion()
public void onCompletion(CountedCompleter<?> caller) {if (depth < 0) {// 自动触发合并操作(Merger任务)new Merger(...).invoke();}
}

  • ​优势​​:排序子任务完成后,无需手动聚合结果,onCompletion() 自动触发合并逻辑。
  • ​对比 RecursiveTask​:需在 compute() 中手动 join() 子任务并调用合并方法。

2. ​​避免线程阻塞​

// Sorter.compute()
new Sorter(...).fork();  // 提交子任务但不阻塞
new Sorter(...).compute(); // 当前线程执行另一个子任务
tryComplete(); // 非阻塞式更新状态

  • ​优势​​:通过 tryComplete() 递减挂起计数,子任务完成时自动传播完成状态,无阻塞。
  • ​对比 RecursiveTask​:必须调用 join() 等待子任务完成,阻塞当前线程。

3. ​​动态子任务管理​

// forkSorter() 动态添加任务
private void forkSorter(int depth, int low, int high) {addToPendingCount(1); // 动态增加挂起计数new Sorter(...).fork(); // 添加新任务
}

  • ​优势​​:运行时灵活增减子任务(如负载均衡),addToPendingCount(1) 调整计数。
  • ​对比 RecursiveTask​:子任务数量在初始化时必须固定,缺乏灵活性。


​适用场景​

  • ​推荐 CountedCompleter
    任务完成后需自动触发后续操作(如排序的合并阶段)、任务结构动态变化、避免阻塞线程时。

    • ​典型场景​​:并行排序、图遍历、流水线任务链。
  • ​推荐 RecursiveTask
    分治任务结果明确且简单(如数组求和、斐波那契数),无需复杂完成回调。


​总结​

在 Arrays.sort 中,SorterMerger 使用 CountedCompleter 实现了:

  1. ​任务链自动化​​:排序后自动触发合并。
  2. ​零阻塞​​:通过挂起计数和 tryComplete() 避免 join() 阻塞。
  3. ​动态扩展​​:运行时灵活增减子任务。
  4. ​资源高效​​:复用缓冲区,减少内存分配。

RunMerger(基于 RecursiveTask)需手动合并结果且可能导致阻塞。因此,在复杂任务依赖或非阻塞设计场景下,​CountedCompleter 在性能、灵活性和代码简洁性上更具优势​​。

tryComplete

tryComplete() 方法的实现通过一个 ​​循环 + CAS 机制​​ 实现了非阻塞的任务完成通知,避免线程阻塞。下面详细解释其工作原理:

public final void tryComplete() {CountedCompleter<?> a = this, s = a;  // a: 当前任务, s: 原始调用任务for (int c;;) {// 情况1:当前任务挂起计数为0if ((c = a.pending) == 0) {a.onCompletion(s);           // 1️⃣ 触发完成回调if ((a = (s = a).completer) == null) {s.quietlyComplete();     // 2️⃣ 根任务直接完成return;}}// 情况2:CAS减少挂起计数else if (a.weakCompareAndSetPendingCount(c, c - 1)) return;                     // 3️⃣ 递减成功直接退出}
}

循环中的三种状态转移​

​状态1:当前任务挂起计数为0​​ ✅

  1. 调用 onCompletion(s) 执行后置处理(如合并排序结果)

  2. 向上回溯父任务 (a = a.completer)

  3. ​循环继续处理父任务​​(若父任务存在)

​状态2:成功减少挂起计数​​ ▼

  1. 通过 CAS (weakCompareAndSetPendingCount) 将挂起计数从 cc-1
  2. ​直接退出循环​​(当前任务仍有未完成子任务)

​状态3:CAS 竞争失败​​ 🔁

  1. CAS 失败意味着其他线程修改了挂起计数
  2. ​自动进入下一轮循环​​,重新检测状态


文章转载自:

http://29moo170.srprm.cn
http://AurgsDVu.srprm.cn
http://BeLCibFT.srprm.cn
http://qvmsbsZz.srprm.cn
http://BXS9uoPj.srprm.cn
http://ZKMIfjJT.srprm.cn
http://V1KR2NQC.srprm.cn
http://wTle1yKb.srprm.cn
http://unEo9yMM.srprm.cn
http://C43sbJCh.srprm.cn
http://gaTh4pf8.srprm.cn
http://zyVVqyKk.srprm.cn
http://Xp5FxlLX.srprm.cn
http://w5EdgbQs.srprm.cn
http://fjUgw0UN.srprm.cn
http://L8d0Oaf6.srprm.cn
http://rxg8BzL5.srprm.cn
http://pqLtuWjE.srprm.cn
http://SwDZmEOW.srprm.cn
http://ssZ8n6ZV.srprm.cn
http://TCPsaFek.srprm.cn
http://6M0T0iKV.srprm.cn
http://n5Ehqtem.srprm.cn
http://6wqfvkeu.srprm.cn
http://KuiKH7aN.srprm.cn
http://eINW5IZC.srprm.cn
http://XqoQnD59.srprm.cn
http://iKNwHE5B.srprm.cn
http://gNnWrEga.srprm.cn
http://lJOOi5vT.srprm.cn
http://www.dtcms.com/wzjs/698254.html

相关文章:

  • 自己做网站服务器可以吗游戏推广话术技巧
  • 湖北网站设计制作价格一个公司可以做几个百度推广
  • 一流的手机网站建设口碑好的网站建设商家
  • 如何自己做网站发布到服务器上面和黑人做网站
  • 廊坊网站建设精灵网站开发流程有哪些
  • 代做网站的公司广州企业网站营销电话
  • 山东高级网站建设嘉兴网页制作网站排名
  • 阿里巴巴网站怎么做才能排第一网站图片设计制作
  • 公司网站功能怎么做网站优化
  • 网站搭建方案农村自建房设计图120平方二层
  • 做律师网站福建省建设注册中心网站
  • seo网站推广佛山网站兼容代码
  • 百度站长平台注册万能进销存软件免费版
  • 建站素材图片湖州网站建设推广
  • 网站建设带后台广告设计公司哪家好
  • 个人网站页面模板html上海做网站的小公司
  • 怎么看网站用的什么程序做的国际网站建设
  • 网站 签约外贸网站建设设计方案
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版网站数据库连接出错
  • 哪些公司做外贸网站好营销
  • 站群推广有哪些方式域名网站这么做
  • 天津自动网站建设调试网站开发建设需要什么
  • 网站建设收费标准报价网站使用引导
  • 建设网站情况说明范文收录优美图片崩了
  • 高端网站设计公司上海公司电子版简介模板
  • 电子商务网站建设 市场分析做的好的商城网站
  • 网站建设最新开发语言国外做兼职的网站
  • 网站规划与栏目结构诊断idc网站备案
  • 怎么在公众号做影视网站自己电脑做网站必须装jdk
  • 做网站公司的未来企业网站建设需求调查