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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • REdis主从复制之repl_backlog

    REdis主从复制之repl_backlog

    2021年7月8日
    126
  • 解决windows update 8024402C错误[通俗易懂]

    解决windows update 8024402C错误[通俗易懂]安装了2003SP1更新时总是会有8024402C错误错误网上daimoon兄的解决方式他的机器在ISASERVER后而我的机器是ISASERVER2004网上daimoon兄的解决方式他的机器在ISASERVER后环境:windowsxpsp1,位于isaserver后问题:使用windowsautoupdate后出错误提示:0x8024402C…

    2022年5月30日
    170
  • 深入浅出Python机器学习3——K最近邻算法

    深入浅出Python机器学习3——K最近邻算法K最近邻的算法的原理;在分类任务中的应用;在回归分析中的应用;使用K最近邻算法对酒的分类进行分类。

    2022年10月8日
    2
  • 机器学习名词解释(train & valid & test)(accuracy & precision & recall)

    机器学习名词解释(train & valid & test)(accuracy & precision & recall)train valid ortest 机器学习最明显的一个特点是需要大量的数据 特别对监督学习来说 就是需要大量的带标签数据 labeleddata 很多入门的朋友很快就会遇见模型训练和测试这两个阶段 进而也就了解到带标签数据是要被划分成两个部分的 训练集 trainingset 与测试集 testset 这两个概念也很直观 大部分朋友非常快就能接受 可

    2025年9月2日
    2
  • IBM-B24光纤交换机配置zone

    IBM-B24光纤交换机配置zoneB24的配置使用WEB方式,很多时候会出现打不开配置页面的问题,这种情况大多数是因为java或者ie版本的问题,个人推荐使用ie8,java使用1.6.0_25版本。具体配置步骤可参考此链接中的内容https://wenku.baidu.com/view/fb97a8ef0975f46527d3e103.html 转载于:https://blog.51cto.com…

    2022年5月21日
    45
  • jetbrains 免费激活码 2022【最新永久激活】

    (jetbrains 免费激活码 2022)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    3.2K

发表回复

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

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