From: http://blog.tianya.cn/blogger/post_read.asp?BlogID=3668353&PostID=32699671 问题 Java中提供了很多调度线程的方法,上一节介绍了其中一种控制线程的方法:如何等待一个线程结束。那么如果不希望等待线程结束,而是根据问题的需要随时都要中断线程使其结束,这种对线程的控制方法该如何实现呢? 解决思路 首先必须先明确“中断”这个概念的实际含义,这里的中断是指一个线程在其任务完成之前被强行停止,提前消亡的过程。查阅JDK的帮助文档,可以找到这样一个和中断有关的方法:interrupt()。 它的语法格式如下所示: public void interrupt() 该方法的功能是中断一个线程的执行。但是,在实际使用当中发现,这个方法不一定能够真地中断一个正在运行的线程。下面通过一个例子来看一看使用interrput()方法中断一个线程时所出现的结果。程序代码如下所示: // 例4.4.1 InterruptThreadDemo.java class MyThread extends Thread { public void run() { while(true) // 无限循环,并使线程每隔1秒输出一次字符串 { System.out.println(getName()+' is running'); try{ sleep(1000); }catch(InterruptedException e){ System.out.println(e.getMessage()); } } } } class InterruptThreadDemo { public static void main(String[] args) throws InterruptedException { MyThread m=new MyThread(); // 创建线程对象m System.out.println('Starting thread...'); m.start(); // 启动线程m Thread.sleep(2000); //主线程休眠2秒,使...