关闭

Executors

标签: Executors线程池
652人阅读 评论(1) 收藏 举报
分类:

      一、  初始化的几种方式 

               1、Executors.newCachedThreadPool()

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

               2、 Executors.newFixedThreadPool(5)

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

               3、 Executors.newSingleThreadExecutor()

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

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

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


    二、 SingleThreadExecutor

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


       后期会持续更新,这篇博客,探讨Executors的使用,和不同的初始化对象的使用场景。

               

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:103445次
    • 积分:1388
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:26篇
    • 译文:2篇
    • 评论:17条
    最新评论