JAVA高级基础(66)---线程的生命周期

版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/85028672

线程的生命周期

线程从创建到运行再到死亡的整个过程。

在线程整个生命周期中,线程总共分为了五中状态:

  1. 新建:线程对象创建
  2. 就绪:通过线程的start方法启动线程,线程就处于就绪状态,等待线程调度,获取CPU的执行权。
  3. 运行:线程获得CPU的执行权,处于运行中。
  4. 阻塞:线程在执行期间,因为某种原因(休眠,礼让,时间到达),暂时失去CPU 的执行权,等待再次获得CPU的执行权。
  5. 死亡:当run(),main()执行结束之后,或者因为线程发生异常,终止执行。线程死亡之后不能在复生。

进入阻塞的方式

  1. 等待阻塞:线程执行了wait()方法;
  2. 同步阻塞:线程在执行同步锁的时候,锁对象被其他线程占用。等待其他线程释放锁。
  3. 其他阻塞:线程执行了sleep()、join()、执行IO操作  直到sleep的时间,或者join的线程结束和时间 到达。或者IO操作结束。 线程会再次恢复到就绪状态。

线程状态图

package org.lanqiao.thread.demo;

public class ThreadDemo {
	public static void main(String[] args) {
		Thread t1 = new Thread() {
			public void run() {
				for(int i = 0 ; i < 100 ; i++) {
					
					System.out.println(Thread.currentThread().getName()+"--"+i);
				}
				
				
			}
			
		};
		t1.start();
		for(int i = 0 ; i < 500 ; i++) {
			System.out.println(Thread.currentThread().getName()+"=="+i);
			if(i == 50) {
				t1.stop();
				
			}
//			if(i > 50 && !t1.isAlive()) {
//				
//				t1.start();
//				
//			}
		}
		
	
		
		
		
	}
}

猜你喜欢

转载自blog.csdn.net/yj201711/article/details/85028672
今日推荐