您的位置:首页 > 编程语言 > Java开发

java线程研究---(3)停止Thread

2015-08-07 13:52 375 查看
停止Thread

既然可以用start方法启动一个线程对象执行,那么就应该有对应的stop方法来终止(停止)线程对象的执行。

但是在JDK1.1之后,这个stop方法就取消了,因为会造成系统进入不稳定的状态。。。

(这里说的 终止,停止,是指线程停掉之后,永远都不能恢复执行了)

那么我们就自己设计一个方案,让线程对象停止执行:

一个线程对象的执行体是run方法
run方法里面的程序代码执行完后,那么就意味着这个线程停止了。
一个线程停止了,就进入了“dead”状态,没有任何方法让该线程对象进入其他状态了,永远不能恢复执行了(不能死而复生

)。
除非重新new一个新的线程对象。
所以我的方案是,想终止一个线程的执行,设计一个stop方法,提前让这个线程的run方法退出(return)


具体代码如下:

package thread;

public class Hello4 implements Runnable {
	String name;
	boolean isStop;

	public Hello4(String n) {
		this.name = n;
	}

	@Override
	public void run() {

		int i = 0;
		while (!isStop) {
			System.out.println(name + " Hello " + i++);
		}
	}
        // 自定义的stop方法
	public void stop() {
		isStop = true;
	}
}


自定义的stop方法,在程序外部调用,调用之后,run方法内部,跳出循环体,即提前执行完毕。

线程状态图更新如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: