[2025.1.16 JavaSE学习]线程常用方法
线程常用方法
- setName:设置线程名称
- getName:返回线程名称
- start:使线程开始执行,JVM底层调用该线程的start0()方法
- run:调用线程对象run方法
- setPriority:更改线程优先级,三个级别:

- getPriority:获取线程优先级
- sleep:线程休眠
- interrupt:中断线程,但并没有真正地结束线程(不是终止,是中断),一般用于中断正在休眠线程:
try{
Thread.sleep(20000);
}catch(InterruptedException e){
//捕获到一个中断异常,被唤醒
//编写业务代码
}
- yield:线程的让步,让出CPU,让其他线程执行,但是让步时间不确定,所以不一定让步成功
- join:线程的插队,一旦插队成功,先执行插入的线程所有的任务
- 用户线程和守护线程:
- 用户线程:也叫工作线程,当线程的任务执行完或通知方式结束
- 守护线程:一般为工作线程服务,当所有的用户线程结束,守护线程自动结束(常见的守护线程:垃圾回收机制),如何设置一个线程为守护线程:
public class Thread03{
public static void main(String[] args){
MyDaemonThread th = new MyDaemonThread();
th.start();
for(int i=0;i<=10;i++){
Thread.sleep(1000);
}
}
}
class MyDaemonThread extends Thread{
public void run(){
while(true){
try{
Thread.sleep(50);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
上述代码中,主线程结束后,th线程仍旧在执行,证明默认情况下不为守护线程,下述代码将子线程设置为守护线程:
public class Thread03{
public static void main(String[] args){
MyDaemonThread th = new MyDaemonThread();
th.setDaemon(true);//一条语句即可
th.start();
for(int i=0;i<=10;i++){
Thread.sleep(1000);
}
}
}
这样更改后,当主线程结束后,守护子线程也会结束

浙公网安备 33010602011771号