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

Java基础 专栏收录该内容
31 篇文章 1 订阅

停止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方法内部,跳出循环体,即提前执行完毕。



线程状态图更新如下:











  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值