博客
关于我
面试官:都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
阅读量:433 次
发布时间:2019-03-06

本文共 276 字,大约阅读时间需要 1 分钟。

当使用Java的阻塞I/O模型读取数据时,线程会进入阻塞状态,操作系统会将其置于休眠状态。在JVM中,线程的状态仍然显示为RUNNABLE。这是因为JVM内部并未区分操作系统的可运行状态和运行状态,而是将这些状态统一为RUNNABLE。jstack作为JVM内部工具,显示的是JVM内部的线程状态,而不是操作系统的具体线程状态。因此,当线程阻塞时,JVM将其标记为RUNNABLE,而不是显示为BLOCKED或WATTING。这种差异是由于JVM内部线程调度机制与操作系统线程调度机制的不同,以及JVM为了简化线程状态信息而合并了多个操作系统线程状态。

转载地址:http://ftpuz.baihongyu.com/

你可能感兴趣的文章
python基础篇(8):字符串常用处理汇总
查看>>
python基础篇(7):函数进阶知识点
查看>>
python基础篇(6):global关键字
查看>>
python基础篇(5):None类型
查看>>
python基础篇(4):range语句
查看>>
python基础篇(3):print()补偿知识点
查看>>
python基础篇(2):字符串扩展知识点
查看>>
python基础篇(1):type()
查看>>
python基础篇(15):闭包
查看>>
python基础篇(14):多态
查看>>
python基础篇(12):继承
查看>>
python基础篇(11):封装
查看>>
python基础篇(10):自定义包
查看>>
python基础篇(10):类、对象与构造方法
查看>>
python系列【仅供参考】:python斗地主
查看>>
Python基础教程(第2版 修订版) pdf
查看>>
python基础实践(四)
查看>>
Python基础学习笔记(九)常用数据类型转换函数
查看>>
Python基础学习参考(五):字符串和编码
查看>>
Python基础学习
查看>>