美文网首页
问题:线程有哪些不同的状态

问题:线程有哪些不同的状态

作者: Dream_Lin | 来源:发表于2019-01-18 17:58 被阅读61次

问题

线程有哪些状态

答案

线程的状态

在Java中,线程一共有六个状态,每个线程在某个时刻处于这六个状态的其中一种.这六种状态分别是:

  • NEW-线程刚被实例化出来,还没有调用thread.start()方法.

  • RUNNABLE-线程已经调用了thread.start()方法,但这个时候线程可能处于被CPU执行的状态,也有可能处于等待被CPU执行的状态,这两种状态都称之为RUNNABLE状态.

  • BLOCKED-线程调用了一个带有锁的方法,而此时这个锁已经被其它线程占有,线程此时等待着其它线程释放该锁,这种状态称之为BLOCKED状态.

  • WAITING-线程等待其它线程执行特定的响应,比如当线程调用thread.wait()方法等待其它线程唤醒,或者调用thread.join()方法使得线程等待另外一个线程执行完后再执行,这些场景都属于WAITING状态.

  • TIMED-WAITING-和上面的WAITING状态类似,只不过调用的方法多加了时间,比如thread.join(2000),thread.wait(2000).Java将Thread.sleep(5000)也归在这个地方,我觉得有点别扭,可以单独再分出一种新的状态,因为该方法并不等待其它线程执行特定操作.

  • TERMINATED-线程完成了所需要执行的所有方法,方法退出后,线程就处于了TERMINATED状态.

相关文章

网友评论

      本文标题:问题:线程有哪些不同的状态

      本文链接:https://www.haomeiwen.com/subject/chxodqtx.html