最简单也最容易理解得线程结束

导读:本篇文章讲解 最简单也最容易理解得线程结束,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

昨天刚刚接触多线程,但是一打开多线的常用的三种常用的创建方式就会发现,它们确实有停止的方式,但是后面有大大的标识——已过时
在这里插入图片描述
所以只有找其他的办法解决了,那么就不卖关子了,进入今天的主题——结束线程

一、结束线程的常见方式

1、自然退出:run()执行完之后自动退出,这种行为是可预测的。当然这也是最好得方式。
2、强制退出:传统方式是使用suspend()和resume()来暂停或者恢复线程,或者最后的选择使用stop()来结束线程。但是在实际中都不会使用这三个方式,因为它们操作线程时,根本不知道线程的内部状态,这样会导致不可预知的情况发生,所以不推荐使用!

二、结束线程的正确方式(代码演示)

代码如下(关闭方法):

public class EndThread implements Runnable{
	private boolean isRun = false; // 创建有个boolean类型的私有的isRun元素,初始值赋予false
	

	public EndThread(boolean isRun) {// 生成EndThread带参的构造函数
		this.isRun = isRun;
	}

	@Override
	public void run() { // 重写Runnable自带的run()方法
		int counter = 0; // 设置结束线程的条件
		while(isRun) { // 设置while循环方便后续测试滚动看效果
			counter++; // 自增
			System.out.println("counter"+counter);
			if(counter==10) { // 线程停止条件
				isRun = false; // 控制线程停止
			}
		}
	}
}

代码如下(测试):

public class Test03 {

	public static void main(String[] args) {
		EndThread endThread = new EndThread(true);// 创建一个新的EndThread对象的同时做启动线程的准备
		Thread thread = new Thread(endThread);
		thread.start();// 启动线程
	}
}

代码如下(输出):

counter1
counter2
counter3
counter4
counter5
counter6
counter7
counter8
counter9
counter10

总结

果然在通过条件判断哪里,线程就结束,如果没有条件结束,那么这个线程将一直持续下去,演变成一个死循环,嘿嘿,因为我写的就是一个死循环,这种线程的结束相对于哪三种强制结束的方法就温和得多,代码很简单,是为了直观的表述原理,期望指正哦!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5102.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!