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

时间:2017-11-17 17:14:16

标签: java java-8

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

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

1 个答案:

答案 0 :(得分:7)

来自javadoc:

  

java.util.Random的实例是线程安全的。但是,并发   跨线程使用相同的java.util.Random实例可能会遇到   争用和随之而来的糟糕表现。考虑改为使用   多线程设计中的ThreadLocalRandom。