sleep使线程休眠,另一个线程可以调用sleep线程的interrupt中断它的休眠。
结束休眠状态有两种途径:
①休眠时间到达后,线程重新进入运行状态。
②处于休眠状态的线程遇上java.lang.InterruptedException异常,从而被迫停止休眠。
使线程进入休眠状态可以直接调用Thread.sleep();打断某线程的休眠状态的手段是调用该线程的interrupt()方法。
main(String[] args) {
MyThread t1=new MyThread();
t1.start();
Thread.sleep(5);
synchronized(t1)
{
t1.interrupt();
}
}
}
class MyThread extends Thread
{
public void run(){
try{
Thread.sleep(5000);
}catch (InterruptedException e) {
System.out.println("interrupted");
}
System.out.println("休眠结束");
}
}
本来t1要休眠(sleep)5000毫秒的,结果主线程5毫秒后中断了它的休眠,5毫秒后t1就‘醒了’