java基础类库学习(七.3)控制线程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/83792351

前言

线程的五个状态新建/就绪/运行/阻塞/死亡

为了很好的控制线程的状态(新建态,就绪态--运行态控制不了),我们来看一下线程对象的几个方法,也就是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();

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/83792351
今日推荐