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


相关推荐

  • 关于数据库读写分离

    1、what读写分离读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。2、why那么为什么要读写分离呢?因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。但是数据库的“读”(从oracle读…

    2022年4月6日
    39
  • java获取当前时间秒单位的时间

    java获取当前时间秒单位的时间获取当前时间秒单位的时间功能很常见但是具体怎么操作呢下面来说明几种常见获取单位秒的时间方式publicstaticvoidmain(String[]args){ //最常见获取方式 System.out.println(System.currentTimeMillis()/1000); //jdk1.8LocalDateTime获取世界统一时间 System.out.println(LocalDateTime.now().toEpochSecond(ZoneOffset.UTC

    2022年9月6日
    3
  • quicktime player屏幕录制_电脑自带录屏怎么使用

    quicktime player屏幕录制_电脑自带录屏怎么使用Mac电脑用自带软件QuickTimePlayer进行录屏的教程,几步就可以学会,挺简单的。  1、首先,找到并打开QuickTimePlayer软件。可以鼠标右键这个图标,选择“选项”-“在程序坞中保留”,这样,软件就固定在了Dock栏,方便以后打开软件。  2、启动软件后,屏幕顶部左上角出现“QuickTimePlayer”栏目。  3、这时,我们点击屏幕左上角“QuickTimePlayer”栏目右边的“文件”选项,选择“新建屏幕录制”菜单项。  4、这时,屏…

    2022年9月13日
    0
  • 最经典的黑客技术入门知识

    最经典的黑客技术入门知识最经典的黑客技术入门知识 整理:Ackarlix 第一节、什么是黑客以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情,因为邪派黑客所从事的事情违背了《黑客守则》,所以他们真正的名字叫“骇客”(Cracker

    2022年6月9日
    29
  • cropper.js 实现HTML5 裁剪图片并上传(裁剪上传头像。)「建议收藏」

    cropper.js 实现HTML5 裁剪图片并上传(裁剪上传头像。)「建议收藏」我的需求功能:在手机端实现上传头像,带裁剪框。cropper.js通过canvas实现图片裁剪,最后在通过canvas获取裁剪区域的图片base64串。cropper文档:官方文档是全英文的,好吧我看不懂。只能一个个试试效果,就有了下面的总结。官方文档<-点这1.container容器2.canvas图片3.crop裁剪框option相…

    2022年5月27日
    31
  • 看过spring源码吗_thinkphp源码分析

    看过spring源码吗_thinkphp源码分析概述

    2022年8月12日
    3

发表回复

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

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