【七彩虹教育】一个归并任务的流转

【七彩虹教育】一个归并任务的流转

Step1. 任务提交到任务队列

包括 invoke 等所有任务提交方法最终都会调用 ForkJoinPool.externalPush 方法。

这里面需要考虑将任务提交到哪个队列?

如果提交到 ForkJoinWorkerThread 自己的双端任务队列中:不管提交到头还是尾,都会和我们上面分析的三个操作发生任务冲突。而且如何选择负载最小的线程来提交也会增加问题复杂性。

ForkJoinPool 中双端任务队列是用数组(volatile WorkQueue[] workQueues)实现的,其中奇数下标存放的是可激活的任务队列,偶数下标存放的是不可激活的任务队列。激活指的是这个队列是否是某个ForkJoin线程的任务队列。

ForkJoinPool.externalPush 只能将任务提交到不可激活任务队列,该方法的主要逻辑为:

当提交的任务是 pool 的第一个任务时,会初始化 workQueues,ForkJoinWorkerThread 等资源,通过 hash 算法选择一个偶数下标的 workQueue,在 TOP 处放入任务。同时唤醒 ForkJoinWorkerThread 开始拉取任务工作。

当提交的任务不是第一个任务,此时 workQueues 等资源已初始化好。同样需要选择一个偶数下标的 workQueue 存放任务,如果选中的 workQueue 只有这一个任务,说明之前线程资源大概率是闲置的状态,会尝试 唤醒(signalWork 方法) 一个空闲的 ForkJoinWorkerThread 开始拉取任务工作。

特别声明:[【七彩虹教育】一个归并任务的流转] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

《樱桃琥珀》口碑惨淡,张凌赫新剧拼翻身,热吻王楚然这一幕超性感(《樱桃琥珀》电视剧剧情介绍)

最近,张凌赫和王楚然携手合作,在民国新剧《这一秒过火》中力求逆袭。二人自开拍以来便被观众寄予厚望,展现出强烈的化学反应。在最新曝光的路透画面中,张凌赫身穿黑白西装,他紧紧地将王楚然压在桌边,准备亲吻。 在此之…

《樱桃琥珀》口碑惨淡,张凌赫新剧拼翻身,热吻王楚然这一幕超性感(《樱桃琥珀》电视剧剧情介绍)

袁伟豪刘佩玥担任港姐真人秀节目主持——这是一次别样的新尝试(袁伟豪老婆)

对于两人来说,这不仅是一次职场新尝试,也是一次超越自我界限的挑战。这次他们肩负的,不仅仅是个人演技的展现,而是主持这档重要真人秀节目的责任。许多网友对两人的主持能力持怀疑态度,甚至有人直言不讳地表示,这是在为…

袁伟豪刘佩玥担任港姐真人秀节目主持——这是一次别样的新尝试(袁伟豪老婆)

经典摄影作品的后期思路能给创作者带来多少启发?(100幅经典摄影作品欣赏)

《中国摄影》影像后期工作坊的第一期邀请到艺卓EIZO品牌大使、DXOMARK专家联盟组成员、Datacolor全球色彩管理专家乔枫伟老师。他有着近20年的后期软件研究经验,以及近15年的后期教学工作经验,擅…

经典摄影作品的后期思路能给创作者带来多少启发?(100幅经典摄影作品欣赏)

豆瓣9.4|树木不再提供慰藉,而是发出警告(树木不成林的意思)

本·罗伦斯是一位关注自然与环境问题的调查记者,在2018年到2025年间,他穿越苏格兰、加拿大、西伯利亚、挪威、格陵兰岛和阿拉斯加,采访当地研究极地生态系统的科学家,前往最偏远寒冷的人类定居点,深度体验当…

豆瓣9.4|树木不再提供慰藉,而是发出警告(树木不成林的意思)

在新材料赛道跑出“加速度”!巩义这家企业发展势头强劲(新材料核心赛道,一家极具成长性的稀缺龙头公司)

“我们公司的主打产品是碳纤维板,”河南巩东四合新材料科技有限公司的副总经理王昌浩表示,“例如,这款碳纤维板被广泛应用于穿越机的机架部分,通过雕刻拼装的工艺完成。” 作为公司的总经理,程旭介绍道:“我们主要生…

在新材料赛道跑出“加速度”!巩义这家企业发展势头强劲(新材料核心赛道,一家极具成长性的稀缺龙头公司)