最佳答案
我遇到了一个奇怪的情况,在静态初始化器中使用带有 lambda 的并行流似乎永远不会有 CPU 利用率。密码是这样的:
class Deadlock {
static {
IntStream.range(0, 10000).parallel().map(i -> i).count();
System.out.println("done");
}
public static void main(final String[] args) {}
}
这似乎是这种行为的最小再生测试用例。如果我:
代码立即完成。有人能解释这种行为吗? 这是一个错误还是有意为之?
我使用的是 OpenJDK 版本1.8.0 _ 66-Internal。