资讯专栏INFORMATION COLUMN

浅析Java线程池 ExecutorService

dinfer / 2950人阅读

摘要:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。创建一个定长线程池,支持定时及周期性任务执行。

ExecutorService是Java中对线程池定义的一个接口,它java.util.concurrent包中.

创建一个什么样的ExecutorService的实例(即线程池)需要g根据具体应用场景而定,不过Java给我们提供了一个Executors工厂类,它可以帮助我们很方便的创建各种类型ExecutorService线程池,Executors一共可以创建下面这四类线程池:

newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
注:Executors只是一个工厂类,它所有的方法返回的都是ThreadPoolExecutor、ScheduledThreadPoolExecutor这两个类的实例。

简单使用

ExecutorService executorService = Executors.newFixedThreadPool(10);

executorService.execute(new Runnable() {
public void run() {
    System.out.println("Asynchronous task");
}
});

executorService.shutdown();

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67646.html

相关文章

  • 线程原理浅析

    摘要:线程池主要解决两个问题一是当执行大量异步任务时线程池能够提供很好的性能。二是线程池提供了一种资源限制和管理的手段,比如可以限制现成的个数,动态新增线程等。该方法返回一个对象,可指定线程池线程数量。 什么是线程池? 为了避免频繁重复的创建和销毁线程,我们可以让这些线程进行复用,在线程池中,总会有活跃的线程在占用,但是线程池中也会存在没有占用的线程,这些线程处于空闲状态,当有任务的时候会从...

    未东兴 评论0 收藏0
  • Java 线程的认识和使用

    摘要:用于限定中线程数的最大值。该线程池中的任务队列维护着等待执行的对象。线程池和消息队列笔者在实际工程应用中,使用过多线程和消息队列处理过异步任务。以上是笔者在学习实践之后对于多线程和消息队列的粗浅认识,初学者切莫混淆两者的作用。 多线程编程很难,难点在于多线程代码的执行不是按照我们直觉上的执行顺序。所以多线程编程必须要建立起一个宏观的认识。 线程池是多线程编程中的一个重要概念。为了能够更...

    mgckid 评论0 收藏0
  • Java实战001-线程ExecutorService

    线程池ExecutorService 一. new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就太out了,...

    dayday_up 评论0 收藏0
  • Java线程简单总结

    摘要:本文主要内容为简单总结中线程池的相关信息。方法簇方法簇用于创建固定线程数的线程池。三种常见线程池的对比上文总结了工具类创建常见线程池的方法,现对三种线程池区别进行比较。 概述 线程可认为是操作系统可调度的最小的程序执行序列,一般作为进程的组成部分,同一进程中多个线程可共享该进程的资源(如内存等)。在单核处理器架构下,操作系统一般使用分时的方式实现多线程;在多核处理器架构下,多个线程能够...

    CoorChice 评论0 收藏0
  • 实现线程的代码

    摘要:以下抛异常,因为线程池都没了线程池之后提供的线程池的工厂类用来生成线程池类中的静态方法创建一个可重用固定线程数的线程池参数创建线程池中包含的线程数量返回值接口返回的是接口的实现类对象我们可以使用接口接收面向接口编程线程池接口用来从线程池中获 showImg(https://segmentfault.com/img/bVbv8Fz?w=1382&h=891); showImg(https...

    miya 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<