JavaExecutorService四种线程池及ThreadPoolExecutor机制
java线程池创建的四种java线程池
执⾏⼀个异步任务你还只是如下new Thread吗?
⼀、为什么使⽤线程池
使⽤new Thread执⾏多个线程有如下⼀些问题:
1. 每次new Thread新建对象性能差。
2. 线程缺乏统⼀管理,可能⽆限制新建线程,相互之间竞争,及可能占⽤过多系统资源导致死机或oom。
3. 缺乏更多功能,如定时执⾏、定期执⾏、线程中断。
相⽐new Thread,Java提供的四种线程池的好处在于:
1. 重⽤存在的线程,减少对象创建、消亡的开销,性能佳。
2. 可有效控制最⼤并发线程数,提⾼系统资源的使⽤率,同时避免过多资源竞争,避免堵塞。
3. 提供定时执⾏、定期执⾏、单线程、并发数控制等功能。
⼆、怎么使⽤线程池
java中提供的四种线程池都是Executors提供的,共计四种。
1, newCachedThreadPool
创建⼀个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若⽆可回收,则新建线程。⽰例代码如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论