JAVA并发编程5_线程状态
来源:互联网 发布:业主信息采集软件 编辑:程序博客网 时间:2024/04/29 07:07
JAVA线程的可能处于一下几种状态,任意的时间点一个线程只能处于一个状态。
1. 新建状态(New):创建后尚未启动的线程处于这种状态。
转移时机:创建一个新线程。
2. 就绪状态(Runnable):调用了start()方法,该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
转移时机:调用start()方法。
处于Running状态的线程被CPU选择执行其他线程。
执行Thread.yeild(),不保证。
3. 运行状态(Running):就绪状态的线程获得的了CPU的执行权,正在执行run方法。
转移时机:获得了CPU的执行权。
4. 阻塞(Blocked):运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
转移时机:已经有其他线程正在执行同步代码段,等待同步锁。
5. 无期限等待(Waiting):不会被分配CPU的执行事件,要等待被其他线程显式的唤醒,以下方法导致线程陷入无期限等待:
转移时机:未设置timeout参数的Object.wait()方法
未设置timeout参数的Thread.join()方法
6. 期限等待(Time Waiting):也不会被分配CPU执行事件,不过无需等待其他线程显式的唤醒,在一定时间之后会由系统自动唤醒。以下方法导致线程陷入期限等待:
转移时机:设置Timeout参数的Object.wait()方法
设置Timeout参数的Thread.join()方法
Thread.sleep(long)方法
7. 结束(Terminated):线程执行完了,run方法退出。
1 0
- JAVA并发编程5_线程状态
- Java并发编程(一)_线程安全性
- Java并发编程(一)线程定义、状态和属性
- Java并发编程系列之二:线程状态
- Java并发编程系列之七:线程状态
- Java并发编程(三)——线程的状态
- Java并发编程(一)线程的定义、状态、属性
- java并发编程的艺术(五)-----线程状态
- Java 并发编程(二)线程状态跃迁
- JAVA并发编程(四)——线程状态与中断
- JAVA并发编程2_线程安全&内存模型
- JAVA并发编程3_线程同步之synchronized关键字
- JAVA并发编程4_线程同步之volatile关键字
- JAVA并发编程6_线程协作/生产者-消费者
- JAVA并发编程7_线程封闭:ThreadLocal类
- JAVA并发编程8_线程池的使用
- JAVA并发编程9_正确关闭线程
- JAVA并发-线程状态和线程组
- OVER(PARTITION BY)函数用法
- 哪个进程回复ICMP报文
- MyBatis的动态SQL详解
- 基于虚拟linux+docker搭建hadoop完全分布式集群
- 反转字符串
- JAVA并发编程5_线程状态
- Leetcode -- Two Sum
- spring整合quartz持久化
- 惨痛教训之一
- 不使用框架的情况下 如何得到刚插入的数据(ID自增)
- python安装-ubuntu之第一篇
- 通过Java自带的API获取未安装的apk签名信息
- java的初始化研究:android开发中遇到的一个奇怪问题
- grep用法详解 grep与正则表达式