白话理解java多线程之setDaemon()方法

本文通过一个具体的Java示例,详细解析了守护线程(setDaemon)的使用方法及其特性。展示了如何设置线程为守护线程,并解释了当主线程结束时,守护线程将随之终止的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上例子:

package cn.yh.thread01;

/**
 * setDaemon 微信下载的例子 假如有一个线程,随着主程序存在而存在,停止而停止
 */
public class Demo04 {
	public static void main(String[] args) {
		WeiXin weiXin = new WeiXin("微信");
		weiXin.setDaemon(true);
		System.out.println(weiXin.isDaemon());
		weiXin.start();
		for (int i = 0; i <= 100; i++) {
			System.out.println(Thread.currentThread().getName() + i);
		}
	}
}

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

	@Override
	public void run() {
		while (true) {
			for (int i = 1; i <= 100; i++) {
				System.out.println("下载进度" + i + "%");
				if (i == 100) {
					System.out.println("下载完成");
				}
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

结果:

true
main0
下载进度1%
main1
main2
main3
main4
main5
main6
main7
main8
main9
main10
main11
main12
main13
main14
main15
main16
main17
main18
main19
main20
main21
main22
main23
main24
main25
main26
main27
main28
main29
main30
main31
main32
main33
main34
main35
main36
main37
main38
main39
main40
main41
main42
main43
main44
main45
main46
main47
main48
main49
main50
main51
main52
main53
main54
main55
main56
main57
main58
main59
main60
main61
main62
main63
main64
main65
main66
main67
main68
main69
main70
main71
main72
main73
main74
main75
main76
main77
main78
main79
main80
main81
main82
main83
main84
main85
main86
main87
main88
main89
main90
main91
main92
main93
main94
main95
main96
main97
main98
main99
main100

主程序结束,守护线程也结束.

注意:setDarmon()方法在start()方法之前

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smilecattobelucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值