线程池的调用
Posted 闫广庆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程池的调用相关的知识,希望对你有一定的参考价值。
创建线程池
一般通过工具类Executors的静态方法来获取线程池或静态方法。介绍四种常用创建方法
ExecutorService service1 = Executors.newSingleThreadExecutor();
说明: 单例线程,表示在任意的时间段内,线程池中只有一个线程在工作
ExecutorService service2 = Executors.newCacheThreadPool();
说明: 缓存线程池,先查看线程池中是否有当前执行线程的缓存,如果有就resue(复用),如果没有,那么需要创建一个线程来完成当前的调用.并且这类线程池只能完成一些生存期很短的一些任务.并且这类线程池内部规定能resue(复用)的线程,空闲的时间不能超过60s,一旦超过了60s,就会被移出线程池
ExecutorService service3 = Executors.newFixedThreadPool(10);
说明: 固定型线程池,和newCacheThreadPool()差不多,也能够实现resue(复用),但是这个池子规定了线程的最大数量,也就是说当池子有空闲时,那么新的任务将会在空闲线程中被执行,一旦线程池内的线程都在进行工作,那么新的任务就必须等待线程池有空闲的时候才能够进入线程池,其他的任务继续排队等待.这类池子没有规定其空闲的时间到底有多长.这一类的池子更适用于服务器.
ExecutorService service4 = Executors.newScheduledThreadPool(10);
说明: 调度型线程池,调度型线程池会根据Scheduled(任务列表)进行延迟执行,或者是进行周期性的执行.适用于一些周期性的工作.
以上是关于线程池的调用的主要内容,如果未能解决你的问题,请参考以下文章