三、线程的状态转换
- 当一个线程执行了start方法后,不代表这个线程就会立即被执行,只代表这个线程处于可运行的状态,最终由OS的线程调度来决定哪个可运行状态下的线程被执行。
- 一个线程一次被选中执行是有时间限制的,这个时间段叫做CPU的时间片,当时间片用完但线程还没有结束时,这个线程又会变为可运行状态,等待OS的再次调度;在运行的线程里执行Thread.yeild()方法同样可以使当前线程变为可运行状态。
- 在一个运行中的线程等待用户输入、调用Thread.sleep()、调用了其他线程的join()方法,则当前线程变为阻塞状态。
- 阻塞状态的线程用户输入完毕、sleep时间到、join的线程结束,则当前线程由阻塞状态变为可运行状态。
- 运行中的线程调用wait方法,此线程进入等待队列。
- 运行中的线程遇到synchronized同时没有拿到对象的锁标记、等待队列的线程wait时间到、等待队列的线程被notify方法唤醒、有其他线程调用notifyAll方法,则线程变成锁池状态。
- 锁池状态的线程获得对象锁标记,则线程变成可运行状态。
- 运行中的线程run方法执行完毕或main线程结束,则线程运行结束。
四、线程同步各个方法的区别
- Thread.yield()当前运行的线程变成可运行状态。
- t2.join() 使得当前线程处于阻塞状态直到t2线程执行完毕。
- Thread.sleep()使得当前线程处于阻塞状态直到sleep的时间结束。
- wait、notify、notifyAll方法是Object类的方法,其调用环境必须有synchronized的同步块中调用,否则会抛java.lang.IllegalMonitorStateException异常。
相关推荐
java线程状态之间的转换图,包含转换的一些条件
多线程线程状态转换图
Java线程状态转换.pdf 学习资料 复习资料 教学资源
初学者学习java多线程的必备良师啊!...内容包含:线程的状态及状态之间的转换 线程的优先级 线程的几大常用方法! 申明: 本文出自 “熔 岩” 博客,本人从百度文库转载而来! 大家都尊重一下 作者的版权!
主要介绍了Java线程状态转换关系实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
线程状态图 包含了从创建到消亡的各种流程以及所有状态
创建线程Java创建线程的四种方式线程状态转换当一个线程执行了start方法后,不代表这个线程就会立即被执行,只代表这个线程处于可运行的状态,最终由OS的线程调
Java线程状态流转图
Java线程:线程状态的转换.pdf
Java线程:线程状态的转换[参考].pdf
在java中的线程转换的总描述,结合了所有的java有关线程的状态转移图
2.线程由运行状态进入就绪状态 3.线程由就绪状态进入运行状态 4.线程由运行状态进入阻塞状态 2. 打开ps/sched.c文件,在与线程状态转换相关的函数中
【多线程】线程状态转换 74 【多线程】线程的调度 75 线程优先级 75 sleep 76 wait 76 yield 77 join 78 notify notifyAll 78 【多线程】sleep()和wait()分别是哪个类的方法,有什么区别? 79 【多线程】sleep()和...
11.2.3 线程状态转换 11.2.4 等待线程结束 11.3 线程调度 11.4 线程同步 11.4.1 同步概念 11.4.2 同步格式 11.4.3 同步应用 11.5 线程通信 11.5.1 生产者/消费者 11.5.2 共享队列 11.5.3 运行生产者/消费...
当程序中包含多个线程时,CPU 不是一直被特定的线程霸占,...当位于新建状态的线程调用 start() 方法后,该线程就转换到就绪状态。 所谓就绪,就是告诉 CPU,该线程已经可以执行了,但是具体什么时候执行,取决于 CPU
Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程:线程的调度-合并 Java线程:线程的调度-...
(不稳定)关于线程状态转换的问题 错误的 布尔值 解锁商业功能 使 Oracle Java SE 用户能够控制何时允许运行许可功能。 从 Java SE 7 Update 4 开始。 错误的 布尔值 打印命令行标志 打印出现在命令行上的标志 错误...
线程状态转换与通信机制 线程同步与互斥 线程池知识点 常见的JUC工具类 常用工具集 JVM问题排查工具-JMC IDEA开发神器 线上调试神器-btrace Git原理与工作流 Linux常用分析工具 数据结构与算法 从二叉搜索树到B+树 ...
Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程:线程的调度-合并 Java线程:线程的...