线程池在IO密集或CPU密集场景下的配置

IO密集型:

是指那些大部分时间都在等待外部事件(如网络请求、磁盘操作等)的操作。

1、线程数设置:可以设置较多的线程数,因为线程在等待IO操作完成时可以挂起,让其他线程执行。

2、队列容量:可以设置较大的工作队列容量,以容纳更多的等待处理的任务。

3、超时设置:可以设置较短的任务等待超时时间,以便快速回收长时间等待IO的线程。

CPU密集型:

是指那些主要消耗CPU资源进行计算的操作。

1、线程数设置:线程数应设置为接近或等于机器的CPU核心数,以避免过多的线程竞争CPU资源,导致上下文切换的开销。

2、队列容量:可以设置较小的工作队列容量,因为CPU密集型任务通常不需要大量排队等待。

3、拒绝策略:当队列满了且没有空闲线程时,可以采用适当的拒绝策略,如抛出异常或丢弃任务。

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务