Java 线程的生命周期

package com.threadlifetime.ljb;
/**
 * 1.线程的生命周期:
 * 		指线程从创建到启动,直至运行结束
 *      可以通过调用 Thread 类的相关方法影响线程的运行状态
 * 2.线程的运行状态:
 * 	新建(New):当创建了一个 Thread 对象时,该对象就处于“新建状态”,没有启动,因此无法运行
 * 	可执行(Runnable):其他线程调用了处于新建状态线程的 start 方法,该线程对象将转换到“可执行状态”
 * 						线程拥有获得 CPU 控制权的机会,处在等待调度阶段
 * 	运行(Running):处在“可执行状态”的线程对象一旦获得了 CPU 控制权,就会转换到“执行状态”
 * 					在“执行状态”下,线程状态占用 CPU 时间片段,执行 run 方法中的代码
 *					处在“执行状态”下的线程可以调用 yield 方法,该方法用于主动出让 CPU 控制权。
 *					线程对象出让控制权后回到“可执行状态”,重新等待调度。
 * 	阻塞(Blocking):线程在“执行状态”下由于受某种条件的影响会被迫出让 CPU 控制权,进入“阻塞状态”。
 *					进入阻塞状态的三种情况:调用 sleep 方法,调用 join 方法,执行 I/O 操作
 * 	死亡(Dead):线程调用 stop()方法时或 run()方法结束后,即进入死亡状态.
 *
 */
public class ThreadTest {
	public static void main(String[] args) throws InterruptedException {
		MyThread mt = new MyThread();
		Thread th = new Thread(mt,"thread");
		System.out.println("new后的状态:" + th.getState());
		th.start();
		System.out.println("start()后的状态:" + th.getState());
		Thread.sleep(1000);
		System.out.println("等待时的状态:" + th.getState());
		Thread.sleep(4000);
		System.out.println("结束后的状态:" + th.getState());
	}
}
class MyThread implements Runnable{
	@Override
	public void run() {
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(Thread.currentThread().getName()+"end");
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java线程生命周期可以分为以下几个阶段: 1. 新建(New):当创建一个Thread对象时,线程处于新建状态。此时线程还没有开始运行。 2. 就绪(Runnable):线程进入就绪状态后,表示该线程已经被创建并且可以被系统调度执行。但是,由于线程调度是由操作系统控制的,所以具体的执行时间是不确定的。 3. 运行(Running):当线程获得CPU资源后,进入运行状态。此时线程开始执行run()方法中的代码。 4. 阻塞(Blocked):线程在运行过程中,可能因为一些原因而暂时停止执行。比如,线程被调用了sleep()方法、等待某个条件满足、请求输入输出等。在这种情况下,线程会进入阻塞状态。 5. 等待(Waiting):线程在某些特定条件下会进入等待状态。比如,调用了wait()方法或者join()方法。此时,线程会释放持有的锁,并且进入等待队列,直到被唤醒。 6. 超时等待(Timed Waiting):与等待状态类似,但是在等待一定时间后会自动唤醒。比如,调用了sleep()方法或者wait()方法的带有超时参数的重载方法。 7. 终止(Terminated):线程执行完run()方法中的代码后,或者因为异常或错误而提前退出时,线程将进入终止状态。 这些是Java线程的基本生命周期,在实际应用中,线程的状态可能会在不同阶段之间切换。可以通过Thread类中的方法来控制线程的状态和状态转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值