我正在使用一个List的并行流。我想它会使用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生成多个线程?
谢谢!
parallelStream()
时,该池中可能只有一个线程可用。如果需要更多详细信息,可以尝试生成线程转储。 - Ivan