如何根據系統的業務場景需求定制自己的線程池?
- 1、背景
- 2、生產中應當如何使用線程池才比較合理呢?
- 2.1、指定線程數量
- 2.2、選擇合適的工作隊列
- 2.3、自定義線程工廠
- 2.4、選擇合適的拒絕策略
- 3、自定義線程池代碼案例
1、背景
線程池有那么多的參數和類型,在實際的開發中,我們應該如何設置呢?是直接使用Executors提供的線程池實現,還是自定義線程池?
一般情況下,其實Executors提供的幾種實現已經足夠我們使用了,比如:newCachedThreadPool()、newFixedThreadPool()以及newSingleThreadExecutor()。
如果在業務場景中使用一個線程就足夠了,那么直接選擇擁有一個核心工作線程的newSingleThreadExecutor()就