1. 程式人生 > 其它 >CPU密集型和IO密集型(判斷最大核心執行緒的最大執行緒數)

CPU密集型和IO密集型(判斷最大核心執行緒的最大執行緒數)

CPU密集型和IO密集型(判斷最大核心執行緒的最大執行緒數)

CPU密集型

1.CPU密集型
獲取電腦CPU的最大核數,幾核,最大執行緒數就是幾
Runtime.getRuntime().availableProcessors()--->獲取電腦的CPU核數

IO密集型

2.IO密集型
判斷程式中,十分耗IO的執行緒,最大執行緒一般設定成大於大型IO專案的兩倍

 

程式碼實現

public class Demo02 {
   public static void main(String[] args) {
       System.out.println(Runtime.getRuntime().availableProcessors());
       ExecutorService threadPool = new ThreadPoolExecutor(
               2,
               Runtime.getRuntime().availableProcessors(),//最大核心核心執行緒數
               3,
               TimeUnit.SECONDS,
                new LinkedBlockingDeque<>(3),
               Executors.defaultThreadFactory(),
               new ThreadPoolExecutor.DiscardOldestPolicy()
              );
       //最大承載數:Deque+Max
       for (int i = 1; i <=3; i++) {
         threadPool.execute(()-> {
             System.out.println(Thread.currentThread().getName()+": "+"OK");
        });
      }
      threadPool.shutdown();
  }
}