Java线程状态转换

时间:2022-04-04 18:16:51

线程转换图

Java线程状态转换

Thread.sleep(long millis) : 使当前线程阻塞规定的时间,不失去占有的锁。阻塞结束后转入可运行状态。

Thread.yield() : 使当前线程转入可运行状态,不是去占有锁。与sleep相比,不会被阻塞规定时间。

Thread.interrupt(): 设置中断标志为True,当此线程进入阻塞状态时,会抛出interrupted异常。通过捕捉interrupted异常来做出相应处理。

object.wait() :使当前线程进入对象object的等待队列,同时失去占有的object的锁(仅当线程占有object锁时,才可调用其wait方法)。当其他线程调用object.notify(), object.notifyAll()时,才有机会进入锁池队列,参与object对象锁的竞争。


参考 : Java线程的5种状态及切换(透彻讲解)