19.线程池的使用

Executor框架

    1.为了更好的控制多线程,jdk并发包的核心,其中一部分比较重要的类:Excutor,帮助开发人员有效控制多线程、作为线程工厂的角色。

Executors创建线程static方法

    1.newFixedThreadPool(),该方法返回一个固定的线程池,线程池的的固定数量是始终不变的,若当有一个任务提交的时候,线程池空闲线程则立即去
        执行;若任务为空,则会被暂缓到一个任务队列里面,则会一直等待有空闲的线程去执行。
    底层实现:
    
    2.newSingleThreadExecutor(),创建一个单个的线程池。若空闲则去执行,否则暂缓任务队列。
    底层实现:
    
    3.newCachedThreadPool(),返回一个可根据实际的线程个数去自动调整的线程池,不限制最大线程数量,若有空闲线程则执行任务,若无任务则不创建
       新的线程,并且每个线程空闲的都被在60秒内被回收。
    底层实现:
    
    4.newScheduledThreadPool(),可根据一个策略去,定时执行线程池里面的任务。
    
  1. package demo8.threadPool;
  2. import java.util.concurrent.*;
  3. public class DemoScheduledThreadPool extends Thread {
  4. @Override
  5. public void run() {
  6. System.out.println("run ...");
  7. }
  8. public static void main(String[] args) {
  9. /*executorService.scheduleWithFixedDelay(执行的对象体,启动的耗时,多少时间执行一次, TimeUnit时间单位);*/
  10. DemoScheduledThreadPool demoScheduledThreadPool = new DemoScheduledThreadPool();
  11. ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
  12. ScheduledFuture<?> scheduledFuture = executorService.scheduleWithFixedDelay(demoScheduledThreadPool,5,3, TimeUnit.SECONDS);
  13. }
  14. }
    底层实现:
    

底层实现来源于 return new ThreadPoolExecutor

  1. package demo8.threadPool;
  2. import java.util.concurrent.ExecutorService;
  3. import java.util.concurrent.Executors;
  4. import java.util.concurrent.ThreadPoolExecutor;
  5. /**
  6. * Created by liudan on 2017/7/22.
  7. */
  8. public class ThreadPoolDemo {
  9. public static void main(String[] args) {
  10. ExecutorService executorService1 = Executors.newFixedThreadPool(10);
  11. ExecutorService executorService2 = Executors.newSingleThreadExecutor();
  12. ExecutorService executorService3 = Executors.newCachedThreadPool();
  13. ExecutorService executorService4 = Executors.newScheduledThreadPool(1);
  14. //底层实现来源于 return new ThreadPoolExecutor
  15. }
  16. }
  17. submit与execute的区别:
    1.submit可以传入参数为实现Callable接口的实例,则返回Future实例对象。
  18.              2.execute的返回值是void。


















posted @ 2017-08-10 02:01  逍遥叹!!  阅读(154)  评论(0编辑  收藏  举报