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

停止Thread


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

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

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


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

  1. 一个线程对象的执行体是run方法
  2. run方法里面的程序代码执行完后,那么就意味着这个线程停止了。
  3. 一个线程停止了,就进入了“dead”状态,没有任何方法让该线程对象进入其他状态了,永远不能恢复执行了(不能死而复生惊恐)。
  4. 除非重新new一个新的线程对象。
  5. 所以我的方案是,想终止一个线程的执行,设计一个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方法内部,跳出循环体,即提前执行完毕。



线程状态图更新如下:











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值