For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
线程池的应用在许多软件编程开发项目中都是会经常用到的一个编程开发技术,而本文我们就通过案例分析来简单了解一下,线程池状态类型与转移方式。
线程池状态类型
在Java中,线程池的状态和线程的状态是完全不同的,线程有6种状态:NEW:初始化状态、RUNNABLE:可运行/运行状态、BLOCKED:阻塞状态、WAITING:无时限等待状态、TIMED_WAITING:有时限等待状态和TERMINATED:终止状态。而线程池的状态有以下5种:
RUNNING:运行状态,线程池创建好之后就会进入此状态,如果不手动调用关闭方法,那么线程池在整个程序运行期间都是此状态。
SHUTDOWN:关闭状态,不再接受新任务提交,但是会将已保存在任务队列中的任务处理完。
STOP:停止状态,不再接受新任务提交,并且会中断当前正在执行的任务、放弃任务队列中已有的任务。
TIDYING:整理状态,所有的任务都执行完毕后(也包括任务队列中的任务执行完),当前线程池中的活动线程数降为0时的状态。到此状态之后,会调用线程池的terminated()方法。
TERMINATED:销毁状态,当执行完线程池的terminated()方法之后就会变为此状态。
线程池状态转移
线程池的状态转移有两条路径:
当调用shutdown()方法时,线程池的状态会从RUNNING到SHUTDOWN,再到TIDYING,后到TERMENATED销毁状态。
当调用shutdownNow()方法时,线程池的状态会从RUNNING到STOP,再到TIDYING,后到TERMENATED销毁状态。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。