5月11日java学习笔记

时间:2021-12-12 11:47:22

线程生命周期

1阶段:

线程的创建,写一个类继承Thread类,在此类中重写run()方法,使用对象start();开始线程

2阶段:

调用start();后线程进入可运行状态,此时为具有等待cpu的资格,不具备cpu的执行权

3阶段:

线程进入执行状态,得到cpu的使用权,此时的线程具备cpu的执行权,也具备cpu的等待权,运行状态下的线程有两种结束方式,一个是完成其任务进入死亡状态,二是执行过程中执行了sleep(时间)或者wait()方法,此时的线程会进入临时阻塞状态

sleep(时间)

线程被抢夺cpu执行权,进入临时阻塞状态,线程沉睡相应时间后可再次抢回cpu的执行权,进入可运行状态

wait()

线程被抢夺cpu执行权,进入临时阻塞状态,当其他线程重新唤醒该线程才可以重新进入可运行状态。

方法:

1,getName(),返回线程的名字
2,setName(),设置线程的名字
3,sleep(),静态方法,线程沉睡,在哪个线程里面调用就哪个线程沉睡,与调用对象无关,只看在哪里调用,run()方法中无法throws异,只能catch异常,因为原run()方法没有异常抛出,所以重写不能抛出,主线程可以抛出。
4,currentThread(),静态方法,返回执行个方法这个线程,主线程中执行就返回main,其他线程中执行就返回执行这个线程的线程对象,那个对象就执行这个方法线程类中的this类
5.getPriority(),获取当前线程的优先级
6.setPriority(),设置线程的优先级,设置范围为1-10