在这种情况下,为什么Arrays.setAll比Arrays.parallelSetAll更快?

Azz*_*hem 2 java java-8

在这种情况下,为什么Arrays.setAll比Arrays.parallelSetAll更快?

int[] array = new int[30000000];
Random rnd = new Random();
Arrays.parallelSetAll(array, i->rnd.nextInt(200));
Run Code Online (Sandbox Code Playgroud)

Mat*_*eak 7

来自javadoc:

java.util.Random的实例是线程安全的.但是,跨线程并发使用相同的java.util.Random实例可能会遇到争用并因此导致性能不佳.请考虑在多线程设计中使用ThreadLocalRandom.

  • 伟大而富有启发性的答案表明添加字符串"parallel"并不一定能让事情变得更快. (3认同)