Java线程的几种状态.docx

上传人:太** 文档编号:60556641 上传时间:2022-11-16 格式:DOCX 页数:4 大小:90.74KB
返回 下载 相关 举报
Java线程的几种状态.docx_第1页
第1页 / 共4页
Java线程的几种状态.docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《Java线程的几种状态.docx》由会员分享,可在线阅读,更多相关《Java线程的几种状态.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、123456789101112131415161718192021222324252627中定义的集中Java线程的状态:/* A thread state. A thread can be in one of the following states:* * link #NEW* A thread that has not yet started is in this state.* * link ttRUNNABLE* A thread executing in the Java virtual machine is in this state.* * link ttBLOCKED)* A

2、 thread that is blocked waiting for a monitor lock* is in this state.* * link ttWAITING* A thread that is waiting indefinitely for another thread to* perform a particular action is in this state.* * link #TIMED_WAITING* A thread that is waiting for another thread to perform an action* for up to a sp

3、ecified waiting time is in this state.* * link ttTERMINATED* A thread that has exited is in this state.* * * 28 * A thread can be in only one state at a given point in time.29 * These states are virtual machine states which do not reflect* any operating system thread states.30 * since 1. 531 * see t

4、tgetState*/32 public enum State /*33 *没有start。的线程状态*/34 NEW,35 /*可运行线程的线程状态。处于可运行状态的线程正在Java虚拟机中执行,但它可能正在等待来自操作系统(如处理器)的其他资源*/36 RUNNABLE,37 /*线程处于阻塞状态。在进入或者重新进入synchronized代码块/方法时,等待monitor lock的一种状态*/38 BLOCKED,39 /*线程处于等待状态。,由于调用以下方法之一,线程会处于等待状态:40 *Object, wait ()没有超时时间*Thread. join()没有超时时间41 *L

5、ockSupport. park()*/42 WAITING,43 /*具有指定等待时间的等待状态。调用以下方法之一,在指定的等待时间内,使线程处于等待状态:44 *Thread, sleep*Objectftwait (long)有超时时间45 *Thread, join (long) 有超时时间*LockSupport. parkNanos46 *LockSupport. parkCntil*/47 TIMED_WAITING,6869 /*终止状态。线程已完成执行70 */TERMINATED;71 mterruptO上述Java代码定义的几个状态中其实是没有running状态的。线程的

6、runnable状态是从虚拟机的角度来看的,表示这个线程正在运行。但是 处于Runnable状态的线程不一定真地消耗CPU.处于Runnable的线程只能 说明该线程没有阻塞在java的wait或者sleep方法上,同时也没等待在锁上 面。但是如果该线程调用了本地方法,而本地方法处于等待状态,这个时候 虚拟机是不知道本地代码中发生了什么,此时尽管当前线程实际上也是阻塞的 状态,但实际上显示出来的还是runnable状态,这种情况下是不消耗CPU 的。阻塞与等待的区别:阻塞:当一个线程试图获取对象锁(非库中的锁,即 synchronized ),而该锁被其他线程持有,那么该线程进入阻塞状态。它的特点 是使用简单,由JVM调度器来决定唤醒自己,而不需要由另一个线程来显式唤 醒自己,不响应中断。等待:当一个线程等待另一个线程通知调度器一个条件时,该线程进入等待状 态。它的特点是需要等待另一个线程显式地唤醒自己,实现灵活,语义更丰 富,可响应中断。例如调用:Object.wait。、Thread.join()以及等待Lock或Conditiono

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁