1 | ThreadPoolExecutor( |
IO密集型:指的是大量的读写操作。例如mysql数据库的读写,数据的清洗,文件的读写,附件服务器的读写,网络通信等任务。这类任务不会特别消耗cpu,但是单个任务由于执行io操作会特别耗时。
CPU密集型:指的是依赖于cpu的计算的操作。例如人工智能算法,加解密算法,压缩等需要消耗大量CPU资源的任务,这些大部分场景下都纯CPU计算。
在确定任务类型后:
CPU密集型:核心线程数=CPU核数+1
IO密集型:核心线程数=CPU核心数*(1+IO耗时/CPU耗时) 或者核心线程数=CPU核心数/(1-阻塞系数)
其中CPU密集型阻塞系数为0,IO密集型阻塞系数接近于1,一般认为在0.8~0.9之间。例如:8核CPU,按照公式就是8(1-0.9)=80