博客
关于我
面试官:都说阻塞 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/

你可能感兴趣的文章
Objective-C实现2D变换算法(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现9x9乘法表算法(附完整源码)
查看>>
Objective-C实现9×9二维数组数独算法(附完整源码)
查看>>
Objective-C实现A*(A-Star)算法(附完整源码)
查看>>
Objective-C实现A-Star算法(附完整源码)
查看>>
Objective-C实现abbreviation缩写算法(附完整源码)
查看>>
Objective-C实现ABC人工蜂群算法(附完整源码)
查看>>
Objective-C实现activity selection活动选择问题算法(附完整源码)
查看>>
Objective-C实现AC算法(Aho-Corasick) 算法(附完整源码)
查看>>
Objective-C实现adaboost算法(附完整源码)
查看>>
Objective-C实现Adler32算法(附完整源码)
查看>>
Objective-C实现AES算法(附完整源码)
查看>>
Objective-C实现AffineCipher仿射密码算法(附完整源码)
查看>>
Objective-C实现aliquot sum等分求和算法(附完整源码)
查看>>
Objective-C实现all combinations所有组合算法(附完整源码)
查看>>
Objective-C实现all permutations所有排列算法(附完整源码)
查看>>
Objective-C实现all subsequences所有子序列算法(附完整源码)
查看>>
Objective-C实现AlphaNumericalSort字母数字排序算法(附完整源码)
查看>>