如何在Java中区分RUNNING状态与java.lang.Thread.State.RUNNABLE
当线程是RUNNABLE时,它可以正在运行,也可以不运行.有没有办法将其与java.lang.Thread.State#RUNNABLE区别开? Java doc中线程的所有状态:
输出:
最佳答案
假设Thread类定义了一个函数boolean isRunning().你能用它做什么?例如,这将毫无意义:
它的问题是,即使线程t实际上在isRunning()调用期间的某个时刻正在运行,也无法保证在t.isRunning()返回true时它仍将在运行.无法保证在doXYandZ()调用期间它不会停止运行. 操作系统能够区分正在运行的线程和不是由于该状态由操作系统控制的线程,并且操作系统需要记住哪些线程正在运行,哪些不是因为计划的是操作系统的工作他们. Java运行时环境无法区分RUNNING和RUNNABLE,因为它无法控制在任何给定时间实际正在运行哪些线程,并且它无法对该状态的变化做出有意义的反应. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |