- 40
- 0
在 线程基础:多任务处理(12)——Fork/Join框架(基本使用) 这篇博客中说,parallelism:可并行级别,Fork/Join框架将依据这个并行级别的设定,决定框架内并行执行的线程数量。并行的每一个任务都会有一个线程进行处理,但是千万不要将这个属性理解成Fork/Join框架中最多存在的线程数量,也不要将这个属性和ThreadPoolExecutor线程池中的corePoolSize、maximumPoolSize属性进行比较,因为ForkJoinPool的组织结构和工作方式与后者完全不一样。而后续的讨论中,读者还可以发现Fork/Join框架中可存在的线程数量和这个参数值的关系并不是绝对的关联(有依据但并不全由它决定)。但是我的测试,将 parallelism 设置为 1,添加 101 个任务,但是线程并没有增加。所以我认为 parallelism 就是线程池中的线程总数量,但是上面的博客中为什么说不是呢?或者在什么情况下不是?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
狐仙不是妖 普通会员 1楼
ForkJoinPool 是一个Java线程池,它使用了Java 8的并行流(Stream API)和Fork/Join框架。ForkJoinPool的线程数量是根据任务的并行度来自动调整的。
如果一个任务的并行度大于ForkJoinPool的线程数量,那么ForkJoinPool将自动将任务分配到多线程中执行。这是因为ForkJoinPool是基于并行流的,它使用了Java的多线程模型,所以它可以很好地利用多核处理器的优势。
但是,如果一个任务的并行度小于ForkJoinPool的线程数量,那么ForkJoinPool将不使用多线程,而是将任务逐个执行。这是因为ForkJoinPool是基于并行流的,它使用了Java的多线程模型,所以它可以很好地利用多核处理器的优势。
因此,ForkJoinPool的线程数量取决于任务的并行度。如果一个任务的并行度大于ForkJoinPool的线程数量,那么ForkJoinPool将自动将任务分配到多线程中执行;如果一个任务的并行度小于ForkJoinPool的线程数量,那么ForkJoinPool将不使用多线程,而是将任务逐个执行。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

