今天老哥又来了,一鼓作气。再写一篇。
很多程序都用过线程池。可你们的线程池用的对吗?大厂是怎么用的呢。来不废话了,直接看代码
//生产环境都是手写线程池实现的,
//采用的拒绝策略也是
static ExecutorService threadPool = new ThreadPoolExecutor(2,
5,
1L,
TimeUnit.SECONDS,
new LinkedBlockingQueue<>(3),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.DiscardPolicy());
一定不要使用JDK 自带的线程池创建方法。那是天坑。一不小心那就是OOM 。