线程睡眠, 中断线程睡眠

package com.anyan;

/**
* @author anyan
* @date 2021/5/4-11:58
*/
/*
关于线程睡眠的测试程序
Thread.sleep(参数为毫秒)在哪个线程中调用,则为哪个线程睡眠
当线程睡眠时间过长时,可选择中断其睡眠 intterupt
*/
public class Temp2 {
public static void main(String[] args) {
Thread t=new Thread();
Thread.currentThread().setName("主线程");
Student4 stu4=new Student4();
stu4.start();
for (int i = 0; i < 30; i++) {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

}
      //利用的是抛出异常的方式
stu4.interrupt();//中断分支线程的睡眠

}
}
class Student4 extends Thread{
public void run(){
for(int i=0;i<30;i++){
Thread.currentThread().setName("分支线程");
System.out.println(Thread.currentThread().getName());
//由于夫类Thread并未抛出任何异常,所以作为其子类继承夫类的方法时不可以抛出比夫类更多/更宽泛的异常。
//因此,此处出现异常只能捕捉
try {
Thread.sleep(10000000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
上一篇:ABA问题及解决办法


下一篇:主线程与分支线程运行时的状态 包括睡眠状态