JAVA线程的生命周期

线程的生命周期有出生状态,就绪状态,运行状态,等待状态,休眠状态,阻塞状态,死亡状态这7中状态。

当运行状态下的线程调用Thread类的wait()方法,该线程处于等待状态,进入等待状态下的线程必须调用Thread中的notify()方法才能被唤醒,而notifyAll()方法是将说有处于等待状态下的线程唤醒。

当线程调用Thread类的sleep()时,将会进入休眠状态。

如果一个线程在运行状态下发出输入输出请求的话,会使该线程进入阻塞状态,在其等待输入输出结束时线程进入就绪状态,对于阻塞的线程来说,即使系统资源空闲,线程依然不能回到运行状态,当线程的run()执行完之后线程进入死亡状态。

线程进入就绪状态有几种可能:

1.调用sleep()方法

2.调用wait()方法

3.等待输入输出完成

线程处于就绪状态之后,可以用几种方法使线程再次进入到运行状态:

1.调用notify()方法

2.调用notifyAll()方法

3.调用interrupt()方法

4.线程的休眠时间结束

5.输入输出结束

1.线程的休眠

try{

Thread.sleep(2000);

}catch(InterruptrdException e){

e.printStackTrace():

}

 

2.线程的加入:当某个线程使用join()方法加入到另一个线程时,另一个线程会等待该线程执行完毕再继续执行

3.线程的中断:以前使用stop(),现在使用的是run()方法无限循环的,使用一个布尔类型的标记控制循环的停止。

4.线程的礼让:使用yield()是给当前的正处于运行状态下的线程一个提醒,告知它可以将资源让给其他的线程,但不保证当前线程会将资源礼让。yield()方法具有同样优先级的线程有进入可执行状态的机会,当前线程放弃执行权时会再度回到就绪状态。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值