CPU密集型和IO密集型(判斷最大核心執行緒的最大執行緒數)
阿新 • • 發佈:2022-04-19
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();
}
}