如何根据系统的业务场景需求定制自己的线程池?
- 1、背景
- 2、生产中应当如何使用线程池才比较合理呢?
- 2.1、指定线程数量
- 2.2、选择合适的工作队列
- 2.3、自定义线程工厂
- 2.4、选择合适的拒绝策略
- 3、自定义线程池代码案例
1、背景
线程池有那么多的参数和类型,在实际的开发中,我们应该如何设置呢?是直接使用Executors提供的线程池实现,还是自定义线程池?
一般情况下,其实Executors提供的几种实现已经足够我们使用了,比如:newCachedThreadPool()、newFixedThreadPool()以及newSingleThreadExecutor()。
如果在业务场景中使用一个线程就足够了,那么直接选择拥有一个核心工作线程的newSingleThreadExecutor()就