t2.join();
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println("线程运行完毕!");
}
}
class A implements Runnable
{
private String str ;
private int delay;
public A(String s,int d)
{
str = s ;
delay = d ;
}
public void run()
{
try {
Thread.sleep(delay);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println(str+"运行!");
}
}
中断线程:
当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它。
例题:SleepInteerupt.java
public class SleepInterrupt
extends Object
implements Runnable {
public void run() {
try {
System.out.println(
"in run() - 这个线程休眠20秒");
Thread.sleep(20000);
System.out.println("in run() - 继续运行");
}
catch (InterruptedException x) {
System.out.println(
"in run() - 中断线程");
return;
}
System.out.println("in run() - 休眠之后继续完成");
System.out.println("in run() - 正常退出");
}
public static void main(String[] args) {
SleepInterrupt si = new SleepInterrupt();
Thread t = new Thread(si);
t.start();
//在此休眠是为确保线程能运行一会
try {
Thread.sleep(2000);
}
catch (InterruptedException x) {}
System.out.println(
"in main() - 中断其他线程");
t.interrupt();
System.out.println("in main() - 退出");
}
}
查看线程的中断状态:isInterrupted()方法
可以在Thread对象上调用isInterrupted()方法来检查任何线程的中断状态。
上一页 下一页