线程的状态和生命周期

线程的生命周期分为5个状态。

(1)新建状态(Create):创建一个线程类的对象后,产生的新线程就进入新建状态。

如:Thread  myth=new MyThread();

(2) 可运行状态(Runable):也叫就绪状态,调用start()方法后进入。

(3) 运行状态(running):当处于就绪状态的线程被调用并获得了cpu等执行必须的资源时,就进入了运行状态。

    myth.run();

(4) 挂起状态(blocked):也叫堵塞状态,当下面的四种情况·之一出现时就会进入:

调用了sleep()方法

调用了wait()方法。

如果线程中使用synchronized来请求对象的锁未获得时。

如果线程中有输入输出操作。

如果一个线程进入了挂起状态,就无法进入就绪队列。这时,通常需要由某些事件才能唤醒,具体由什么唤醒取决于挂起的原因。

(5) 停止状态(dead):线程已经退出运行状态,并且不再进入就绪状态。产生这种现象的原因可能是线程已经执行完毕,或者被另一个进程强行杀死。

 

 

  1. 线程的基本控制

(1)终止线程

线程run()方法执行完毕后,会自然终止。

也可通过调用stop()方法来终止线程。

(2)测试线程状态

  可以通过isAlive()方法来来获取线程是否处于活动状态。start()后,终止前,都属于活动状态。

(3)线程的暂停与恢复

  sleep()方法:将线程停止若干毫秒。

join()方法:当前线程等待调用该方法的线程结束后,再恢复执行。

  1. 线程的调度和优先级

设置线程优先级的格式为:

线程名.setPriority(i);

其中,i的取值为1~10,10为最大优先级。

Thread类有三个优先级静态常量:

MAX_PRIORITY:最大优先级,10。

MIN_PRIORITY:最小优先级,1。

NORM_PRIORITY:普通优先级,5。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值