《Java并发编程实战》2.结构化并发应用程序

六、任务执行

 
      Executor框架
        1)线程池
  • newSingleThreadExecutor 一个线程
  • newFixedThreadPool 固定大小线程池
  • newCachedThreadPool 缓冲线程池
  • newScheduledThreadPool 延迟或定时线程池
        2)Executor生命周期
        ExecutorService继承了Executor,扩展了其生命周期的管理方法。其生命周期状态:运行、关闭、已终止
        3)Callable与Future
        实现了线程池可返回执行结果,并可取消中断。
 

七、取消与关闭

    任务取消:用户取消、时间限制、程序取消、错误、关闭。
    interrupt是请求中断,传递一个中断信息,并不是中断线程。还需要响应中断才可以。
    中断是实现任务取消的最合理方式,不可中断的任务在退出前可恢复中断。
《Java并发编程实战》2.结构化并发应用程序
 

八、线程池的使用

 
        构造函数:
        public ThreadPoolExecutor(int corePoolSize,
                          int maximumPoolSize,
                          long keepAliveTime,
                          TimeUnit unit,
                          BlockingQueue<Runnable> workQueue,
                          ThreadFactory threadFactory,
                          RejectedExecutionHandler handler);
  • corePoolSize:核心线程数,①中用到
  • maximumPoolSize:最大线程数,③中用到
  • keepAliveTime & unit:存活时间,在⑥中创建的为非核心线程,在阻塞队列workQueue上take时,设置该时间,等中断后回收该线程。
  • workQueue:工作队列,②中用到
  • threadFactory:线程工厂,⑤⑥用到
  • handler:拒绝处理策略,④中用到
《Java并发编程实战》2.结构化并发应用程序