Java线程状态、状态转换的条件、sleep、yield()、wait()等方法的调用,及区别
Java线程的五种状态:
1.新建状态 : new Thread()
2.就绪状态 :start()方法返回后,线程就处于就绪状态
3.运行状态 : 获得了CPU执行时间
4.阻塞状态 :线程处于等待状态
5.死亡状态 :线程死亡
运行状态 --> 阻塞状态:
1.IO等待
2.sleep使当前线程进入阻塞状态,不释放对象锁
3.等待锁资源或其他条件的发生
4.wait导致当前线程等待。线程会释放掉它所占有的对象锁,从而使别的线程有机会抢占该锁
运行状态 --> 就绪状态
1.调用yield()的方法,暂时让出CPU,使当前线程重新回到可执行状态,让同优先级的线程有执行的机会。
2.(线程调度)时间片轮转
运行状态 --> 死亡状态
1.run()方法执行结束,线程正常结束
2.线程异常终止