码迷,mamicode.com
首页 > 编程语言 > 详细

线程池

时间:2018-08-05 11:57:23      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:执行   最大并发数   cache   text   time   常见   art   缺点   闲置   

为什么用线程池?

创建线程需要较大的系统开销;可以有效的控制线程最大并发数;可以对线程进行一些简单的管理(例如:延时执行、定时循环执行的策略)

常见的四种线程池

fixThreadPool

有核心线程,固定的线程数量,响应的速度快。

 public static ExecutorService newFixedThreadPool(int threads)
    {
    return newFixedThreadPool(threads,threads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
    }

caCheThreadPool  

只有非核心线程,最大线程数很大(Int.Max(values)),它会为每一个任务添加一个新的线程,这边有一个超时机制,当空闲的线程超过60s内没有用到的话,就会被回收。缺点就是没有考虑到系统的实际内存大小。

  public static ExecutorService newCachedThreadPool(int threads)
    {
    return newFixedThreadPool(threads,Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>());
    }

singleThreadPool

只有一个核心线程,排队执行

ScheduledThreadPool   

唯一一个有延迟执行和周期重复执行的线程池。它的核心线程池固定,非核心线程的数量没有限制,但是闲置时会立即会被回收。

 

线程池

标签:执行   最大并发数   cache   text   time   常见   art   缺点   闲置   

原文地址:https://www.cnblogs.com/chenxiaobo/p/9424823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!