Java线程状态、状态转换的条件


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.线程异常终止






你可能感兴趣的:(Java)