最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

大厂面试题:说说线程的状态

XAMPP新闻 admin 227浏览 0评论

一、得分点 

NEW、RUNNABLE、BLOCKED、WTING、TIMED_WTING、TERMINATED 

二、标准回答 

Java线程在运行的生命周期中,在任意给定的时刻,只能处于下列6种状态之一: 

NEW :初始状态,线程被创建,但是还没有调用start方法。 

RUNNABLE:可运行状态,线程正在JVM中执行,但是有可能在等待操作系统的调度。 

BLOCKED :阻塞状态,线程正在等待获取监视器锁。 

WTING :等待状态,线程正在等待其他线程的通知或中断。 

TIMED_WTING:超时等待状态,在WTING的基础上增加了超时时间,即超出时间自动返回。 

TERMINATED:终止状态,线程已经执行完毕。 

线程在创建之后默认为初始状态,在调用start方法之后进入可运行状态,可运行状态不代表线程正在运行,它有可能正在等待操作系统的调度。进入等待状态的线程需要其他线程的通知才能返回到可运行状态,而超时等待状态相当于在等待状态的基础上增加了超时限制,除了他线程的唤醒,在超时时间到达时也会返回运行状态。此外,线程在执行同步方法时,在没有获取到锁的情况下,会进入到阻塞状态。线程在执行完run方法之后,会进入到终止状态。 

三、加分回答

Java将操作系统中的就绪和运行两个状态合并为可运行状态(RUNNABLE)。线程阻塞于synchronized的监视器锁时会进入阻塞状态,而线程阻塞于Lock锁时进入的却是等待状态,这是因为Lock接口实现类对于阻塞的实现均使用了LockSupport类中的相关方法。

转载请注明:XAMPP中文组官网 » 大厂面试题:说说线程的状态

您必须 登录 才能发表评论!