java setdaemon_Java Thread setDaemon()方法

java setdaemon_Java Thread setDaemon()方法Thread 类的 setDaemon 方法用于将线程标记为守护程序线程或用户线程 它的生命依赖于用户线程 即当所有用户线程都消亡时 JVM 会自动终止该线程 必须在线程启动之前调用它 如果在声明线程后调用 setDaemon 方法 则此方法将抛出 IllegalThrea 语法 publicfinalv booleanon 参数 on 如

Thread类的setDaemon()方法用于将线程标记为守护程序线程或用户线程。 它的生命依赖于用户线程,即当所有用户线程都消亡时,JVM会自动终止该线程。必须在线程启动之前调用它。

如果在声明线程后调用setDaemon()方法,则此方法将抛出IllegalThreadStateException。

语法

public final void setDaemon(boolean on)

参数

on – 如果为true,则将该线程标记为守护程序线程。

返回值

如果线程是守护进程线程,则此方法将返回true,否则返回false。

异常

IllegalThreadStateException:如果线程处于活动状态。

SecurityException:如果当前线程无法修改线程。

示例

public class JavaSetDaemonExp1 extends Thread

{

public void run()

{

//checking for daemon thread

if(Thread.currentThread().isDaemon())

{

System.out.println(“daemon thread work”);

}

else

{

System.out.println(“user thread work”);

}

}

public static void main(String[] args)

{

// creating three threads

JavaSetDaemonExp1 t1=new JavaSetDaemonExp1();

JavaSetDaemonExp1 t2=new JavaSetDaemonExp1();

JavaSetDaemonExp1 t3=new JavaSetDaemonExp1();

// set user thread t1 to daemon thread

t1.setDaemon(true);

//call run() method

t1.start();

// set user thread t2 to daemon thread

t2.setDaemon(true);

// start of threads

t2.start();

t3.start();

}

}

执行上面示例代码,得到以下结果:

daemon thread work

daemon thread work

user thread work

示例二

在线程启动后调用setDaemon()方法时。

public class JavaSetDaemonExp2 extends Thread

{

public void run()

{

System.out.println(“Name of thread: “+Thread.currentThread().getName());

// //checking for daemon thread

System.out.println(“Daemon: “+Thread.currentThread().isDaemon());

}

public static void main(String[] args)

{

// creating two threads

JavaSetDaemonExp2 t1=new JavaSetDaemonExp2();

JavaSetDaemonExp2 t2=new JavaSetDaemonExp2();

// call run() method

t1.start();

// this will throw exception here

t1.setDaemon(true);

// call run() method

t2.start();

}

}

执行上面示例代码,得到以下结果:

Name of thread: Thread-0

Daemon: false

Exception in thread “main” java.lang.IllegalThreadStateException

at java.lang.Thread.setDaemon(Thread.java:1359)

at JavaSetDaemonExp2.main(JavaSetDaemonExp2.java:17)

¥ 我要打赏

纠错/补充

收藏

下一篇:哥,这回真没有了

加啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个最多限加 3 个群。

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

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

(0)
上一篇 2025年6月13日 下午7:01
下一篇 2025年6月13日 下午7:22


相关推荐

  • c语言 木马编程教学,木马编程 之超强服务… 附代码 原创.

    c语言 木马编程教学,木马编程 之超强服务… 附代码 原创.该楼层疑似违规已被系统折叠隐藏此楼查看此楼}BOOLAddSvchostGroup(VOID){HKEYhkey;//其实是一个句柄.if(RegOpenKey(HKEY_LOCAL_MACHINE,”SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\SvcHost”,&hkey)!=ERROR_SUCCESS)returnFALSE…

    2022年6月14日
    37
  • vld 使用

    vld 使用http vld codeplex com documentatio 最近发现用 vs2013 vld 的版本是 2 3 发现 nbsp 检测不了 Visual nbsp Leak nbsp Detector nbsp Version nbsp 2 3 nbsp installed No nbsp memory nbsp leaks nbsp detected Visual nbsp Leak nbsp Detector nbsp is nbsp now nbsp exiting 网上也已经证实了这个 bug 于

    2026年3月17日
    2
  • Nginx负载均衡配置简单配置方法

    Nginx负载均衡配置简单配置方法

    2021年10月9日
    49
  • 修复Domino数据库视图索引的两种方法

    修复Domino数据库视图索引的两种方法环境 产品:LotusNotes/Domino 平台:跨平台 版本:ALL 问题描述 修复Domino数据库视图索引的两种方法 解答 第一种方法: 1。在控制台上运行命令:loadfixup数据库名 2。在控制台上运行命令:loadupdall

    2022年7月22日
    24
  • DDR4原理及硬件设计

    DDR4原理及硬件设计DDR4 的工作原理以及寻址方式 DDR4 是什么 DDR4 全称 DDR4 DRAM 与其他 DDRDRAM 一样 是当前电子系统架构中使用最为广泛的的 RAM 存储器 这句话可以分解出 3 个关键字 存储器 DRAM DDR4 先说存储器 说到存储 顾名思义 它是个动词 以生活为例 假如有个酸奶 你不想吃的时候 将酸奶存到某冰箱 某层 某个位置 当你想吃的时候 在某冰箱 某曾 某个位置中取出该酸奶 这个过程 我们称为存储 结合生活 我们可以看到存储要有 3 个关键动作 酸奶放哪了 你得知道 如果不知道放哪了

    2026年3月18日
    1
  • C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别

    C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别工作中经常碰到 int8 t int16 t int32 t int64 t uint8 t size t ssize t 等数据类型 所以有必要对此进行梳理 int t 同类 int t 为一个结构的标注 可以理解为 type typedef 的缩写 表示它是通过 typedef 定义的 而不是一种新的数据类型 因为跨平台 不同的平台会有不同的字长 所以利用预编译和 typedef 可以最有效的维护代码

    2026年3月18日
    1

发表回复

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

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