gpt4 book ai didi

Java Parallel Stream 总是记录相同的 threadID

转载 作者:行者123 更新时间:2023-11-30 12:03:23 25 4
gpt4 key购买 nike

我在列表上使用并行流。我想它会使用 WorkJoinPool 来产生多个工作线程,但根据日志,不知何故一直只有一个线程:

14:32:14.561 [http-nio-8080-exec-146] INFO from parent_thread
14:32:15.071 [http-nio-8080-exec-146] INFO from first_element_execution
14:32:15.228 [http-nio-8080-exec-146] INFO from second_element_execution
... and so on.

这是我的代码的简短版本:

List<String> myList = ...;
myList.parallelStream().forEach( // Do something and slf4j.log it );

[编辑]我在我的本地机器上尝试了一些非常简单的代码,它确实产生了多个线程。不幸的是,我无法在本地或其他环境中运行生产代码。

为什么我的 parallelStream 不使用 WorkJoinPool 来生成多个线程?

谢谢!

最佳答案

这取决于您的生产 CPU 有多少个内核。您正在使用由表达式初始化的通用 ForkJoinPool:可用处理器的数量 - 1。所以这个线程池可能只有 1 个线程。

关于Java Parallel Stream 总是记录相同的 threadID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com