提示是您正在调用
Math.random它使用的单个全局实例
Random。因此,您的所有4个线程都争用一种资源。
使用线程本地
Random对象将使您的执行真正并行:
Random random = new Random();double[] array = new double[10000000];for (int i = 0; i < array.length; i++) { array[i] = Math.tanh(random.nextDouble());}
提示是您正在调用
Math.random它使用的单个全局实例
Random。因此,您的所有4个线程都争用一种资源。
使用线程本地
Random对象将使您的执行真正并行:
Random random = new Random();double[] array = new double[10000000];for (int i = 0; i < array.length; i++) { array[i] = Math.tanh(random.nextDouble());}