前言
线程的五个状态新建/就绪/运行/阻塞/死亡
为了很好的控制线程的状态(新建态,就绪态--运行态控制不了),我们来看一下线程对象的几个方法,也就是Thread的几个方法
控制线程的状态
1使线程处于新建态
线程子类 a=new 线程子类();
2使线程处于就绪态
a.start();
a.yield();//使a线程暂停,并进入就绪状态,使调度器重新调度,使得优先级更高的线程获得处理机
3使线程处于运行态
我们决定不了,得有调度器调度,
4使线程处于阻塞态
a.sleep();//使a线程暂停一段时间,并进入阻塞状态
x.join();//a线程正在运行,当调用到x.join()时,a线程会被阻塞,使调度器重新调度,x线程会获得处理机,当x线程结束时,a线程从阻塞态恢复到就绪态,等待调度器调度
5使线程处于死亡态
线程执行体正常结束
线程抛出异常/error
a.stop();
后台线程
如果所有的前台线程都死亡,后台线程会自动死亡;后台线程未其他的线程提供服务
a.setDaemon(true);//必须在线程启动之前设置其为后台线程
t.start();
当前台线程死亡后,jvm会通知后台线程死亡
改变线程优先级
main线程的优先级是普通优先级,每个线程的默认的优先级都与创建他的父线程的优先级相同
setPriority();