java线程状态以及其演变方式与路径
java线程有多少种状态?
核心理解是:当下是否拥有CPU时间;
非拥有CPU时间的状态(阻塞OR等待),是如何被唤醒,超时自动唤醒?或被其他线程唤醒?自动被"操作系统"选择切换?
各种状态间的转换方式与路径
jvm或操作系统有能力直接干预线程的状态!
线程与对象的关系
线程与线程的关系==>交集
对象与对象的关系
线程的结构
线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能,线程本质上是进程中一段并发运行的代码,所以线程需要操作系统投入CPU资源来运行和调度。
参考
对象的结构
java线程与操作系统线程在状态,执行逻辑上的映射关系;
- Ready 代表当前的线程实例在可执行队列中,随时可以被(系统内核调度算法)切换到占用处理器的运行状态。
- Running代表当前的线程实例正在占用处理器运行中。
- Blocked代表当前的线程实例在等待相应的资源。
- java中线程未获得对象的锁而阻塞与操作系统中阻塞的联系.