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();
}
}