Java多线程编程(3)-线程生命周期

Java多线程编程(3)-线程生命周期_第1张图片

      如上图所示,线程的生命周期状态可以分为五大状态,分别是创建、就绪、运行、阻塞(等待)和终止。

      1.创建:线程已经创建,即执行了Thread t = new Thread();

      2.就绪:执行了start()方法后,线程进入队列,线程有资格运行,但调度程序尚未让它执行。阻塞(等待)或者sleep之后,也返回就绪状态。

      3.运行:调度程序选择一个线程作为当前线程时,线程所处的状态。即执行run()的逻辑。

      4.阻塞(等待、睡眠):线程仍旧是活的,但没有条件运行,比如a)线程不会被分配CPU时间,无法执行;b)阻塞于IO; c)阻塞于同步锁。当某些事件出现,仍然可能返回运行状态。

      5.终止:当线程的run()运行完毕,就可以认为线程终止。不推荐使用stop()和destroy()来达到终止状态,前者会导致异常,后者是强行终止,不会释放锁。线程一旦终止,就不能复生。




       

你可能感兴趣的:(java,thread,生命周期)