守护线程与线程中断区别_守护线程和主线程

守护线程与线程中断区别_守护线程和主线程1、主线程结束,守护线程也会提前结束执行。publicclassThreadDemo1extendsThread{ publicThreadDemo1(Stringname){ super(name); } @Override publicvoidrun(){ while(true){ System.err.println(getName()…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、主线程结束,守护线程也会提前结束执行。


public class ThreadDemo1 extends Thread{
	
	public ThreadDemo1(String name){
		super(name);
	}

	@Override
	public void run() {
		while(true){
			System.err.println(getName() + "线程运行了。。。");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) {
		Thread t1 = new ThreadDemo1("线程一");
		Thread t2 = new ThreadDemo1("线程二");
		//设置为守护线程
		t1.setDaemon(true);
		t2.setDaemon(true);
		//启动线程
		t1.start();
		t2.start();
		//主线程2s后退出
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	
	
}

主线程2s后退出后,守护线程也会提前结束。

2、中断线程


public class ThreadDemo1 extends Thread{
	
	public ThreadDemo1(String name){
		super(name);
	}

	@Override
	public void run() {
		while(!interrupted()){//中断状态判断
			System.err.println(getName() + "线程运行了。。。");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) {
		ThreadDemo1 t1 = new ThreadDemo1("线程一");
		ThreadDemo1 t2 = new ThreadDemo1("线程二");
		//启动线程
		t1.start();
		t2.start();
		t1.interrupt();
	}
	
	
}

关于中断线程,调用interrupt()不会让线程立即中断,只是线程的中断状态发生变化,系统会在后续中断该线程。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183446.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安卓中activity的生命周期_activity生命周期调用顺序

    安卓中activity的生命周期_activity生命周期调用顺序前言很高兴遇见你~欢迎阅读我的文章。关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的。事实上,我猜测每个android开发者接触的第一个android组件都是Activity。我们从新建第一个Activity开始,运行了代码,看到模拟机上显示了一个MainActivity标题和一行HolleWorld,从此打开Android世界的大门。本篇文章讲解的重点是Activity的生命周期,在文章的最后也会涉及Activity的设计。不

    2022年8月16日
  • 众数,中位数,平均_平均数中位数

    众数,中位数,平均_平均数中位数导读:本文带你了解各种形式的平均值,并理解其重要性。作者:尼尔·布朗(NeilBrowne)、斯图尔特·基利(StuartKeeley)来源:大数据DT(ID:hzdashuju)01…

    2022年9月17日
  • sql语句根据某个字段去重_根据两个字段去重

    sql语句根据某个字段去重_根据两个字段去重deletefromaop_app_ipmlinfoawherea.impl_idnotin(selectmax(t.impl_id)cfromaop_app_ipmlinfotgroupbyt.app_id,t.ability_id)ps:max(t.impl_id)也能替换为min(t.impl_id)

    2022年10月31日
  • struts2综合漏洞扫描工具

    struts2综合漏洞扫描工具python扫描工具更新2022-4-161.添加了S2-062漏洞利用其实是对S2-061漏洞的绕过支持命令执行,Linux反弹shell,windows反弹shell。2.解决了了Windows反弹shell的功能底层原理:解决了有效负载Runtime.getRuntime().exec()执行复杂windows命令不成功的问题。详情文章:https://www.yuque.com/docs/share/0abe4b7e-45fd-4902-a23a-ad51ab72cbb9?#《使用j

    2022年7月19日
  • 几种经典常用的滤波算法

    几种经典常用的滤波算法几种经典的滤波算法1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因…

    2022年5月24日
  • C# 各种字符串格式

    C#的String.Format举例stringstr1=string.Format("{0:N1}",56789);//result:56,789.0stringstr

    2021年12月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号