Executors提供的四种线程池

转载 2016年08月31日 11:03:00

Executors提供的四种线程池


java.util.concurrent.Executors类,提供了创建四种线程池的方法,相关方法及对应的功能如下:

1、newCachedThreadPool:用来创建一个可缓存线程池,该线程池没有长度限制,对于新的任务,如果有空闲的线程,则使用空闲的线程执行,如果没有,则新建一个线程来执行任务。如果线程池长度超过处理需要,可灵活回收空闲线程。代码示例:

  1. ExecutorService cachedThreadPool = Executors.newCachedThreadPool();    

2、newFixedThreadPool :用来创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。定长线程池的大小通常根据系统资源进行设置:Runtime.getRuntime().availableProcessors()。代码示例:

  1. ExecutorService fixedThreadPool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());    

3、newScheduledThreadPool:用来创建一个定长线程池,并且支持定时和周期性的执行任务。代码示例:

  1. /** 
  2. * 定时执行 
  3. */  
  4. ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(20);  // 长度20  
  5. scheduledThreadPool.schedule(task, 10, TimeUnit.SECONDS);   // 延迟10s执行  
  6.   
  7. /** 
  8. *周期性执行 
  9. */  
  10. ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(20);  // 长度20  
  11. scheduledThreadPool.scheduleAtFixedRate(task,105, TimeUnit.SECONDS); // 延迟10s执行,每个5s执行一次。  

4、newSingleThreadExecutor:用来创建一个单线程化的线程池,它只用唯一的工作线程来执行任务,一次只支持一个,所有任务按照指定的顺序执行。代码示例:

1:ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();


欢迎关注爪哇的世界公众号,每天有最新java咨讯为你推送







相关文章推荐

Executors提供的四种线程池

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制...

Java通过Executors提供四种线程池

Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 new...

Executors创建线程池的四种方法

这个类里面对于四种创建连接池的方法都做了详细的描述,可以先看看!package thread; import java.util.concurrent.ExecutorService; import...

Executors的工厂方法提供的5种不同的线程池

1、newFixedThreadPool() :  作用:该方法返回一个固定线程数量的线程池,该线程池中的线程数量始终不变,即不会再创建新的线程,也不会销毁已经创建好的线程,自始自终都是那几个固定的...
  • Javasus
  • Javasus
  • 2015年11月17日 18:51
  • 2128

Executors 和线程池

让我们开始来从入门了解一下 Java 的并发编程。 本文主要介绍如何开始创建线程以及管理线程池,在 Java 语言中,一个最简单的线程如下代码所示: Runnable runnable = n...

Android的线程池:ExecutorService和Executors

ExecutorService是线程池的一个服务,可以随时关闭线程池,是继承Executor的。Executors是个工厂类,专门创建各种线程池。 Android常用的线程池有一下几种,在Execu...
  • infsafe
  • infsafe
  • 2012年05月30日 12:12
  • 1123

线程池.(Executors,ThreadPoolExecutor,BlockingQueue,RejectedExecutionHandler).介绍

线程池 Android里面,耗时的网络操作,都会开子线程,在程序里面直接开过多的线程会消耗过多的资源,在众多的开源框架中也总能看到线程池的踪影,所以线程池是必须要会把握的一个知识点; ...

Executors类中创建线程池的几种方法的分析

Executors类中创建线程池的几种方法的分析要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,很有可能配置的线程池不是较优的,因此在Executors类里面提供了一些静态工厂...

线程池ThreadPoolExecutor的例子,Executors.newFixedThreadPool实现

通过源码可以看到,本质上,Executors.newSingleThreadExecutor();或者Executors.newFixedThreadPool(args);等等,都是在new Thre...

Java自带的线程池Executors.newFixedThreadPool

线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Executors提供的四种线程池
举报原因:
原因补充:

(最多只允许输入30个字)