首页 > 编程知识 正文

枚举有什么(java线程的生命周期)

时间:2023-05-06 15:02:57 阅读:98553 作者:2600

线程的五种状态

1 .新的新状态

当程序使用new关键字创建线程时,线程处于新状态,线程尚未启动。

调用start()方法时,线程启动并进入Runnable状态。

2.可运行状态(就绪状态)

线程准备好了,等待获取CPU。

3.运行状态运行状态

A.假设线程已经获取了CPU,它进入Running状态,开始执行线程体(run方法中的内容)

B.注意3360如果系统只有一个中央处理器内核(单核),那么在同一时间点只有一个线程在运行。

如果系统有两个中央处理器内核(两个内核),则两个线程可以在同一时间点运行。

假设当线程数大于处理器数时,多个线程仍会轮换。

C.当一个线程开始运行时,如果不是瞬间完成,就不可能一直处于运行状态(走走停停,系统将时间片平均分配给每个线程)

该线程将在执行过程中被中断,以便给其他线程执行的机会。

D.调用yield()可以使线程进入Runnable状态(Runnable state)

4.阻止(挂起)状态

A.调用Sleep()的线程自愿放弃被占用的CPU资源。

B.线程调用阻塞IO方法,在方法返回之前线程被阻塞。

C.当一个线程被阻塞时,其他线程就有机会执行。当阻塞结束时,线程将进入可运行状态。

而不是直接进入运行状态。

5.死(端)状态

当线程的run()执行结束时,线程进入Dead。不要试图在死线程上调用Start(),会出现异常。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。