多线程计算stream parallelStream

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 import java.util.Random;
 4 
 5 /**
 6  * 多线程计算
 7  */
 8 public class ParallelStreamAPI {
 9 
10     public static void main(String[] args) {
11 
12         List<Integer> nums = new ArrayList<>();
13         Random random = new Random();
14         for(int i=0; i<10000; i++) nums.add(1000000 + random.nextInt(1000000));
15 
16         long startTime = System.currentTimeMillis();
17         nums.forEach(n -> {isPrime(n);});
18         long endTime = System.currentTimeMillis();
19         System.out.println("耗时:" + (endTime - startTime));
20 
21 
22         //使用stream parallelStream
23         startTime = System.currentTimeMillis();
24         nums.parallelStream().forEach(n -> {isPrime(n);});
25         endTime = System.currentTimeMillis();
26         System.out.println("耗时:" + (endTime - startTime));
27     }
28 
29     /**
30      * 判断一个数是不是质素/素数
31      * @param num
32      * @return
33      */
34     static boolean isPrime(int num) {
35         for(int i=2; i<=num/2; i++) {
36             if(num % i == 0) return false;
37         }
38         return true;
39     }
40 
41 }

猜你喜欢

转载自www.cnblogs.com/mxh-java/p/12244313.html