Java中打断睡眠阻塞案例
public class Demo {
public static void main(String[] args) {
Thread g=new Thread(){
public void run(){
try {
System.out.println("洗洗上床睡觉了");
Thread.sleep(10000000);
} catch (InterruptedException e) {
System.out.println("诶呀。。。我的头好疼");
}
}
};
Thread x=new Thread(){
public void run(){
for(int i=0;i<5;i++){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println("开着车,唱着五环之歌 。。啊 啊 五~环。。你比四环多一环~~");
}
System.out.println("咣当,撞到师傅了");
g.interrupt();
}
};
g.start();
x.start();
}
}
上述代码中线程g中加入了睡眠阻塞,但是当线程x结束后执行了g.interrupt()这个方法用来打断睡眠阻塞。于是本应该阻塞的线程g在线程x结束后便继续执行。