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多线程之-线程池状态的更多相关文章

  1. Java多线程与线程池技术

    一.序言 Java多线程编程线程池被广泛使用,甚至成为了标配. 线程池本质是池化技术的应用,和连接池类似,创建连接与关闭连接属于耗时操作,创建线程与销毁线程也属于重操作,为了提高效率,先提前创建好一批 ...

  2. Java 多线程:线程池

    Java 多线程:线程池 作者:Grey 原文地址: 博客园:Java 多线程:线程池 CSDN:Java 多线程:线程池 工作原理 线程池内部是通过队列结合线程实现的,当我们利用线程池执行任务时: ...

  3. Java多线程之线程的状态迁移

    Java多线程之线程的状态迁移 下图整理了线程的状态迁移.图中的线程状态(Thread.Stat 中定义的Enum 名)NEW.RUNNABLE .TERMINATED.WAITING.TIMED_W ...

  4. Java 多线程之线程池的使用

    一. 使用背景 谈到Java多线程,我们很自然的会想到并发,在编写多线程代码时,我们一般会创建多个线程,如果并发的线程数量很多,而且每个线程都是执行一个时间很短的任务就结束了,这样频繁的进行线程的创建 ...

  5. java多线程、线程池及Spring配置线程池详解

    1.java中为什么要使用多线程使用多线程,可以把一些大任务分解成多个小任务来执行,多个小任务之间互不影像,同时进行,这样,充分利用了cpu资源.2.java中简单的实现多线程的方式 继承Thread ...

  6. Java多线程和线程池

    转自:http://blog.csdn.net/u013142781/article/details/51387749 1.为什么要使用线程池 在Java中,如果每个请求到达就创建一个新线程,开销是相 ...

  7. Java多线程之线程池详解

    前言 在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因 ...

  8. JAVA多线程(三) 线程池和锁的深度化

    github演示代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-servic ...

  9. Java多线程-ThreadPool线程池(三)

    开完一趟车完整的过程是启动.行驶和停车,但老司机都知道,真正费油的不是行驶,而是长时间的怠速.频繁地踩刹车等动作.因为在速度切换的过程中,发送机要多做一些工作,当然就要多费一些油. 而一个Java线程 ...

  10. java 多线程 4 线程池

    系统启动一个新线程的成本是比较高的,因为它涉及到与操作系统的交互.在这种情况下,使用线程池可以很好的提供性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池. 与数据库连接池类似 ...

随机推荐

  1. AIGC底层技术介绍

    1.AIGC概述 AIGC,全称Artificial Intelligence Generated Content,即人工智能生成内容.这是一种新兴的人工智能技术,其核心思想是利用人工智能模型,根据给 ...

  2. @Valid + BindingResult 拦截接口错误信息

    @Valid + BindingResult 拦截接口错误信息###测试发现: HttpServletRequest request, HttpServletResponse response, 需要 ...

  3. svn服务端安装和使用

    首先去官网下载安装包 点我下载 下载完了以后选择安装路径然后一直next就可以了 安装完了以后在开始菜单里面找到svn 打开  如何使用? 这里是创建代码管理的存储库 点击 repositories ...

  4. navicat 15

    新机经常需要安装navicat每次都要去网上搜很麻烦这次搜到了记录下来以后就不需要重复下载了 有X86和X64两个版本 破解说明在README文档中 下载地址:https://www.aliyundr ...

  5. 使用 GPU 进行 Lightmap 烘焙 - 简单 demo

    作者:i_dovelemon 日期:2024-06-16 主题:Lightmap, PathTracer, Compute Shader 引言 一直以来,我都对离线 bake lightmap 操作很 ...

  6. Freertos学习:04-任务的调试函数

    --- title: rtos-freertos-04-任务的调试函数 EntryName: rtos-freertos-04-task-debug date: 2020-06-22 08:49:06 ...

  7. HTTP 协议学习:1-HTTP概述

    背景 原文:HTTP概述 HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议).它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说, ...

  8. (sql语句试题练习及 参考答案解题思路+个人解题思路)

    SQL字段说明及数据 ======================================================================= 一.部门表字段描述:dp_no 部 ...

  9. 解决方案 | 预装win11如何退回win10?

    0.定义 本文所说的[退回]并不指的是win10升级后的变成win11再变为win10的退回.退回应该理解为[降级],或者叫作返回上一个版本.本文的适用范围局限于,预装系统是win11,想要不通过u盘 ...

  10. centos7安装pcntl扩展

    查看PHP扩展加载的目录php -i | grep extension_dir Centos下使用yum安装php默认是都不带pcntl扩展,需要安装扩展需要下载安装包,编译安装. 首先查看你的服务器 ...