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


相关推荐

  • 【字幕制作】生肉资源的字幕问题解决经验分享 入门科普/一键机翻/在线识别/内嵌封装「建议收藏」

    【字幕制作】生肉资源的字幕问题解决经验分享 入门科普/一键机翻/在线识别/内嵌封装「建议收藏」当你不得不啃一个无内嵌字幕的生肉视频,而又急需中文翻译支持的时候?

    2022年7月27日
    5
  • 惠普电脑指纹锁_利用计算机对指纹进行识别

    惠普电脑指纹锁_利用计算机对指纹进行识别按下电源键,输入密码,咦?密码输错了……再输……咦?又错了!开机密码是啥来着?设置开机密码很普遍(图片引自网络)相信很多朋友都有过上述经历。为了让笔记本更安全,于是设置了一个开机密码。并且为了提高密码的安全性,时常需要过段时间就更新一次,所以经常一着急就给忘了。设置密码虽好,但是它也有两点弊端,一是增加了开机时间,二是存在遗忘和被盗的风险。想想看,你每次开机是不是都要输入一组6位左右的数字或者字母…

    2022年8月10日
    6
  • android双缓冲技术,Android VSYNC与图形系统中的撕裂、双缓冲、三缓冲浅析

    android双缓冲技术,Android VSYNC与图形系统中的撕裂、双缓冲、三缓冲浅析先接触两个图形概念:帧率(FrameRate,单位FPS)–GPU显卡生成帧的速率,也可以认为是数据处理的速度),屏幕刷新频率(RefreshRate单位赫兹/HZ):是指硬件设备刷新屏幕的频率。屏幕刷新率一般是固定的,比如60Hz的每16ms就刷一次屏幕,可以类比一下黑白电视的电子扫描枪,每16ms电子枪从上到下从左到右一行一行逐渐把图片绘制出来,如果GPU显卡性能非常强悍,帧率可以…

    2022年5月11日
    47
  • python强制类型转换astype

    python强制类型转换astype在进行将多个表的数据合并到一个表后,发现输出到EXCEL表的数据发生错误,数值型数据末尾都变成了0。这是因为excel数据超过11位,自动以科学计数法显示,其最大处理精度为15位,超过15位,以后数字自动变0。找了一些解决方法,发现用.astype(‘数据类型’)还是挺方便的。我在输出时,将数值型的数据(int)转化成了字符串(str)。使用方法:df.astype(‘数据类型’)  …

    2022年6月11日
    75
  • tracker服务器地址(每日更新)_hypixel服务器地址

    tracker服务器地址(每日更新)_hypixel服务器地址https://dns.icoa.cn/tracker/udp://tracker.tiny-vps.com:6969/announcehttps://1337.abcvg.info/announcehttps://tracker.fastdownload.xyz:443/announcehttps://opentracker.xyz:443/announceh…

    2022年10月1日
    2
  • SQLi LABS Less-5 报错注入+布尔盲注「建议收藏」

    SQLi LABS Less-5 报错注入+布尔盲注「建议收藏」sqlilabs第五关,sqli-labesless-5,sqlilabsless5

    2022年9月29日
    3

发表回复

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

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