您的位置:首页 > 其它

Executors

2015-11-18 17:59 197 查看
一、 初始化的几种方式

1、Executors.newCachedThreadPool()

CacheThreadPool : 将为每一个任务创建一个线程(程序执行的过程中通常会创建与所需数量相同的线程),然后在回收旧线程时,停止创建新线程,因此它是合理的Executors首选。

2、 Executors.newFixedThreadPool(5)

FixedThreadPool : 用有限的线程集来执行提交的任务。

3、 Executors.newSingleThreadExecutor()

SingleThreadExecutor : 就像是线程数量为1 的FixedThreadPool,它的应用有很多,比如:

希望在另一个线程中长期存活的任务: 如监听进入的套接字连接的任务;

希望在线程中运行的短任务: 更新本地或远程日志的小任务、事件分发线程;

二、 SingleThreadExecutor

由于它是只有一个线程的线程池,所以如果我们向它提交多个任务,这些任务都是使用相同的线程,SingleThreadExecutor实现了维护自己的任务队列,下一个任务的开始时间,一定时上一个任务的结束时间,所以所有的任务会按提交的顺序执行。具有这个特点就可以避免并发的问题,免除加锁的操作。

后期会持续更新,这篇博客,探讨Executors的使用,和不同的初始化对象的使用场景。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: