线程池工作机制

【线程池】在接口性能时,尤其注重了线程池的使用。不建议使用Executors,原因在于它里面的很多方法默认使用的都是无界的LinkedBlockingQueue,高并发情况下,无界队列很容易导致OOM,而OOM会导致所有请求都无法处理,这是灾难性问题。因此建议使用ThreadPoolExecutor来创建线程池管理我们的线程。线程池的7个参数配置有很大考究,在使用过程中注意分析自己的业务场景,进行合理的配置。总的可以总结为以下两点:

     其一:小线程,大阻塞队列,意味着可以提高访问接口的吞吐量;

     其二:大线程,小阻塞队列,意味着可以提高CPU利用率;

    总之,我们视自己的实际应用场景而选择最为合理的核心线程数、最大线程数、阻塞队列以及拒绝策略,保证我们的问题得到最优的解决。

  • 线程池工作机制:了解线程池工作机制很有必要,这可以帮助你分析并发情况下出现的问题,以及如何解决问题提供一个理论参考。工作机制示意图如下所示:

 

线程池工作机制_第1张图片

你可能感兴趣的:(多线程并发编程)