java 线程的几种状态
java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明:
NEW 状态是指线程刚创建, 尚未启动
RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等
WAITING 这个状态下是指线程拥有了某个锁之后, 调用了他的wait方法, 等待其他线程/锁拥有者调用 notify / notifyAll 一遍该线程可以继续下一步操作, 这里要区分 BLOCKED 和 WATING 的区别, 一个是在临界点外面等待进入, 一个是在临界点里面wait等待别人notify, 线程调用了join方法 join了另外的线程的时候, 也会进入WAITING状态, 等待被他join的线程执行结束
TIMED_WAITING 这个状态就是有限的(时间限制)的WAITING, 一般出现在调用wait(long), join(long)等情况下, 另外一个线程sleep后, 也会进入TIMED_WAITING状态
TERMINATED 这个状态下表示 该线程的run方法已经执行完毕了, 基本上就等于死亡了(当时如果线程被持久持有, 可能不会被回收)
下面谈谈如何让线程进入以上几种状态:
java 线程的几种状态相关推荐
- java 线程的几种状态(转载)
java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW 状态是指线程刚创建, 尚未启动 RUNNABLE 状态是线程正在正常 ...
- Java线程的6种状态
线程的概念,以及线程的创建方式,见我之前写的博文 本篇文章主要讲Java线程的6种状态 6种状态:初始状态(new) .可运行状态(Runnable).运行状态(Running).阻塞状态(Block ...
- 详解Java线程的几种状态
一言不合翻源码,一下就是Thread类源码中State内置枚举,列举出了Java线程的几种状态: /*** A thread state. A thread can be in one of the ...
- Java 线程的6种状态(简单介绍)
关于Java线程的状态网上的说法不一,有的说是6种状态,有的说是5中状态,索性就查看了一下Java源码.Thread类里面有一个枚举类,如下: public enum State {NEW,RUNNA ...
- java线程的几种状态
线程共有6种状态:NEW.RUNNABLE.BLOCKED.WAITING.TIMED_WAITING.TERMINATED.分别对应于:新建.运行.阻塞.等待.带超时的等待.终止. 1)新建状态(N ...
- Java线程的5种状态及切换
ava中的线程的生命周期大体可分为5种状态. 1. 新建(NEW):新创建了一个线程对象. 2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方 ...
- Java线程的6种状态及切换(透彻讲解)
Java中线程的状态分为6种. 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法. 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running ...
- Java 线程的 5 种状态
线程状态图: 线程共包括以下 5 种状态: 1. 新建状态(New): 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread(). 2. 就绪状态(Runna ...
- Java线程的6种状态(NEW,RUNNABLE,BLOCKED,WAITING,TINED_WATING,TEMINATE)
1,NEW()新建 线程刚被创建,但未被启动.也就是没有调用start方法. 2,Runnable(可运行) 线程可以在java的虚拟机中运行的状态,可能正在运行自己的代码,也可能没有,这取决于cpu ...
最新文章
- 大数据分析中国冬季重度雾霾的成因(二)
- lazada选品,东南亚韩潮周边产品爆卖,单日销售额5万美金!
- 使用Cucumber+Rspec玩转BDD(2)——邮件激活
- PWN-PRACTICE-BUUCTF-20
- 知识资产投资——《程序员修炼之道》的建议
- java 信号量Semaphore
- 云图说|初识云数据库GaussDB(for Redis)
- MTK 驱动(63)---MTK TP驱动移植
- C++动态内存管理好难怎么办?零基础图文讲解,小白轻松理解原理
- 我的kindle书单
- 快速生成大量测试数据
- oracle单引号和双引号用法
- apk软件去广告 傻瓜教程
- java 实现回收站功能,回收站功能在 Linux 中的实现
- 【动态规划】SSL_1322 清兵线
- 关于Android模块化我有一些话不知当讲不当讲
- Jmeter分布式压测-windows(master控制机)多个linux(slaves负载机)监测服务器资源(cpu、内存等)
- Serverlet 介绍
- ssm中报错: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type a
- android 测试工程 关闭混淆,如何对混淆的Android应用进行渗透测试?
热门文章
- 学习笔记Flink(一)—— Flink简介(介绍、基本概念、应用场景)
- Qt窗口、控件、文本等的一些常用操作
- python 验证回文串
- linux主机电影源码,求::totem电影播放机源代码!!!!
- .net core 调用c dll_工具:搭建Camp;C,一睹模样
- 重装云服务器上的系统后的重新部署项目
- android 两个竖排listview,Android布局 – 在ListView行内垂直堆叠两个TextView
- 【新星计划】Matlab实现数据导出
- leetcode 刷题 119. 杨辉三角II
- python输出二进制数_二进制中1的个数(python)