一、新建
调用 new Thread();
当创建Thread类的一个实例时,此线程进入新建状态。此时线程有自己的内存空间,但是并没有运行。此时线程不是活着的。
二、就绪
调用 start();
线程已经被启动,等待被分配给CPU时间片。此时还没被分配到CPU,不一定会被立即执行,处于线程就绪队列。等待状态并不是执行状态。此时线程是活着的。
三、运行
run();
线程获得CPU资源正在执行任务,此时除非线程自动放弃CPU资源或者有优先级更高的线程进入,否则线程一直运行到结束。此时线程是活着的。
四、堵塞
由于某些原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。此时线程是活着的。
睡眠:用sleep(long t)方法,睡眠t毫秒时间
等待:wait()方法,可调用notify()方法回到就绪状态
被另一个线程阻塞:调用suspend()方法,可调用resume()方法恢复
五、死亡
当线程执行完毕或被其他线程杀死,线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行。此时线程不是活着的。
自然终止:正常运行run()方法后终止
异常终止:调用stop()方法让一个线程终止运行