【发布时间】:2016-08-10 00:47:03
【问题描述】:
Java 8 Stream API 允许在执行代码时使用 implicit 并行化。我在任何地方都找不到 Java 8 中集合(例如 HashSet 和 HashMap)的内部实现是否正在使用这些。关键是,如果是这样,那么使用这些集合的单线程代码将执行(内部)多线程,从而可能显着提高性能。
我们有一个单线程程序,当它在 JVM 中执行时,JVM 正在使用 100%(或大约那么多)的 8 个内核。我们想知道为什么以及出于什么目的以及是否可以控制这一点。在 JVM 中并行执行的情况下,用于计算的有效 CPU 时间量可能会更低。因此,如果 A)我们通过同时运行 8 个单线程程序(也作为单线程程序执行)来使用 8 个内核,而不是 B)为单个程序提供 8 个内核,我们可能会做得更好。
【问题讨论】:
标签: multithreading collections jvm java-8 java-stream