你的位置:首页 > 软件开发 > Java > 第十四章 Executors源码解析

第十四章 Executors源码解析

发布时间:2016-01-22 00:00:15
前边两章介绍了基础线程池ThreadPoolExecutor的使用方式、工作机理、参数详细介绍以及核心源码解析。具体的介绍请参照:第十二章 ThreadPoolExecutor使用与工作机理第十三章 ThreadPoolExecutor源码解析1、Executors与Thread ...

前边两章介绍了基础线程池ThreadPoolExecutor的使用方式、工作机理、参数详细介绍以及核心源码解析。

具体的介绍请参照:

第十二章 ThreadPoolExecutor使用与工作机理

第十三章 ThreadPoolExecutor源码解析

1、Executors与ThreadPoolExecutor

  • ThreadPoolExecutor
    • 可以灵活的自定义的创建线程池,可定制性很高
    • 想创建好一个合适的线程池比较难
    • 使用稍微麻烦一些
    • 实际中很少使用
  • Executors
    • 可以创建4种线程池,这四种线程池基本上已经包含了所有需求,将来根据业务特点选用就好
    • 使用非常简单
    • 实际中很常用

 使用方法:

第十四章 Executors源码解析第十四章 Executors源码解析
package com.collection.test;import java.util.concurrent.Executor;import java.util.concurrent.Executors;public class ThreadPoolExecutorTest {  //private static ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 30, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10));  //private static Executor executor = Executors.newFixedThreadPool(5);  //private static Executor executor = Executors.newSingleThreadExecutor();  //private static Executor executor = Executors.newCachedThreadPool();  private static Executor executor = Executors.newScheduledThreadPool(5);    public void executeTask(){    Task1 task1 = new Task1();//构建任务1    Task2 task2 = new Task2();//构建任务2    executor.execute(task1);//执行任务1    executor.execute(task2);//执行任务2  }    /*   * 基本任务2   */  class Task1 implements Runnable{    public void run() {      //具体任务的业务      for(int i=0;i<1000;i++){        System.out.println("hello xxx!!!");      }    }  }    /*   * 基本任务2   */  class Task2 implements Runnable{    public void run() {      //具体任务的业务      for(int i=0;i<5;i++){        System.out.println("hello world2!!!");      }    }  }    public static void main(String[] args) {    ThreadPoolExecutorTest test = new ThreadPoolExecutorTest();    test.executeTask();  }}

原标题:第十四章 Executors源码解析

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录