Java教程

java多线程之-线程池状态

本文主要是介绍java多线程之-线程池状态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.背景

这一节我们来学习一下线程池状态.....

2.线程池状态

状态名称 高3位 是否接受新任务 是否处理队列中的任务 说明
RUNNING 111 线程池正常运行状态
SHUTDOWN 000 不接收新的任务,但是会处理完队列中的任务
STOP 001 否     会中断正在执行的任务,并且丢弃队列中的任务
TIDYING 010 任务执行完成,活动线程数为0,即将进入终结状态
TERMINATED 011 终结状态

 

3.线程池关闭相关API

 public static void main(String[] args) {
        ExecutorService pool = Executors.newFixedThreadPool(2);
        /**
         *线程池状态变为 SHUTDOWN
         *- 不会接收新任务
         *- 但已提交任务会执行完
         *- 此方法不会阻塞调用线程的执行
         */
        // pool.shutdown();

        /**
         * 线程池状态变为 STOP
         * - 不会接收新任务
         * - 会将队列中的任务返回
         * - 并用 interrupt 的方式中断正在执行的任务
         */
        // pool.shutdownNow();

        // 不在 RUNNING 状态的线程池,此方法就返回 true
        pool.isShutdown();

        // 线程池状态是否是 TERMINATED
        pool.isTerminated();
    }

 

完美!

这篇关于java多线程之-线程池状态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!