在调用sleep方法的时候,我们需要try catch ,而catch的是InterruptedException这个异常,可以说这个异常就是sleep特定的异常。可以通过线程的interrupt方法手动打断。下面的代码在t1大约运行500ms的时候打断。
/**
* sleep的中断
*/
public class SleepDemo2 {
public static void main(String[] args) {
Thread t1 = new Thread("A") {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
System.out.println("interrupted");
e.printStackTrace();
}
}
};
t1.start();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
t1.interrupt();
}
}