public final void setDaemon(boolean on)

守护线程(后台线程)

setDaemon(boolean on):将该线程标记为守护线程或者用户线程。当主线程结束,守

护线程自动结束, 当正在运行的线程都是守护线程时,java 虚拟机jvm 退出, 该方法必须在

启动线程前调用;

守护线程的特点:

守护线程开启后和前台线程共同抢夺cpu 的执行权,开启、运行两者都没区别,

但结束时有区别,当所有前台线程都结束后,守护线程会自动结束。

Deamon //守护线程,标记。如果进程中运行的线程都是守护线程,该进程终止了。


package java.thread;import java.util.Date;/*** 守护线程:Deamon*/
public class TreadDeamonDemo {public static void main(String[] args) {KTV k1 = new KTV("r1", 5);KTV k2 = new KTV("r1", 8);Waiter w = new Waiter("");//守护线程w.setDaemon(true);k1.start();k2.start();w.start();}}/*** KTV包箱*/
class KTV extends Thread {private String name0;private int sleep;public String getName0() {return name0;}public void setName0(String name0) {this.name0 = name0;}public int getSleep() {return sleep;}public void setSleep(int sleep) {this.sleep = sleep;}public KTV(String name0, int sleep) {this.name0 = name0;this.sleep = sleep;}@Overridepublic void run() {try {System.out.println(name0 + "开始营业了");Thread.sleep(sleep * 1000);System.out.println(name0 + "号包厢买单了" + "耗时" + sleep + "秒");} catch (InterruptedException e) {e.printStackTrace();}}
}/*** 服务员*/
class Waiter extends Thread {private String name0;private int sleep;public String getName0() {return name0;}public void setName0(String name0) {this.name0 = name0;}public Waiter(String name0) {this.name0 = name0;}@Overridepublic void run() {while(true){System.out.println(new Date());try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}

注意:一般把守护线程做成死循环,如果进程中运行的线程都是守护线程,该进程终止了。

模拟结果:

r1开始营业了
r1开始营业了
Sat Jul 29 11:48:54 CST 2017
Sat Jul 29 11:48:55 CST 2017
Sat Jul 29 11:48:56 CST 2017
Sat Jul 29 11:48:57 CST 2017
Sat Jul 29 11:48:58 CST 2017
r1号包厢买单了耗时5秒
Sat Jul 29 11:48:59 CST 2017
Sat Jul 29 11:49:00 CST 2017
Sat Jul 29 11:49:01 CST 2017
r1号包厢买单了耗时8秒

Process finished with exit code 0

多线程----守护线程---Deamon相关推荐

  1. python多线程守护线程_Python守护程序线程

    python多线程守护线程 In this tutorial we will be learning about Python Daemon Thread. In our previous tutor ...

  2. python 并发编程 多线程 守护线程

    做完工作这个进程就应该被销毁 单线程情况: 一个进程 ,默认有一个主线程 ,这个主线程执行完代码后 ,就应该自动销毁.然后进程也销毁. 多线程情况: 主线程代表进程结束 一个进程可以开多个线程,默认开 ...

  3. Java多线程—守护线程

    运行在程序后台的一个特殊的线程 当程序只剩下守护线程的时候,守护线程会自动退出 守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失. ...

  4. java多线程 守护线程setDaemon

    守护线程 虚拟机分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不需要等待守护线程执行完毕 package state;public class TestDaemon {public s ...

  5. python 守护线程 join_Python多线程threading join和守护线程setDeamon原理详解

    同一进程下的多个线程共享内存数据,多个线程之间没有主次关系,相互之间可以操作:cpu执行的都是线程,默认程序会开一个主线程:进程是程序以及和程序相关资源的集合:某些场景下我们可以使用多线程来达到提高程 ...

  6. JAVE SE 学习day_09:sleep线程阻塞方法、守护线程、join协调线程同步方法、synchronized关键字解决多线程并发安全问题

    一.sleep线程阻塞方法 static void sleep(long ms) Thread提供的静态方法sleep可以让运行该方法的线程阻塞指定毫秒,超时后线程会自动回到RUNNABLE状态,等待 ...

  7. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  8. [javaSE] 多线程(守护线程)

    我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...

  9. Java多线程之守护线程实战

    转载自 Java多线程之<<守护线程>>实战 定义 什么是守护线程?与守护线程相对应的就是用户线程,守护线程就是守护用户线程,当用户线程全部执行完结束之后,守护线程才会跟着结束 ...

最新文章

  1. docker应用到生产环境的前提
  2. hdu 2433 Travel
  3. java巴特沃斯滤波器编程_巴特沃斯(Butterworth)滤波器 (1)
  4. 休眠CascadeType.LOCK陷阱
  5. Python Tricks(十九)—— switch 的实现
  6. 计算机二级指针,C语言——二级指针
  7. mysql 读未提交数据,MySql数据库的事务隔离级别学习
  8. php自动发卡程序8.0_「亲测」2020新版个人自动发卡源码 php完整个人发卡网搭建源码...
  9. pyspark 空值填充
  10. html设置div大小位置不变,div大小 div固定大小设置
  11. TI公司CC系列的各种芯片的区别 CC2430 CC1100
  12. 计算机地图制图的生产流程包括,2012注册测绘师综合:计算机地图制图生产工艺...
  13. 操作数组的一些常用方法及示例
  14. 存储历史(从古老的绳子记忆到如今)
  15. 十个值得珍藏的正则表达式
  16. Apache Passenger配置常用参数解读
  17. 学计算机需要自控力,上班族,自控力差,怎样才能静下心好好学习?
  18. Windows10:关于触摸板的驱动不适用的问题
  19. 【Python】-setting模块的安装
  20. iOS微信第三方登录

热门文章

  1. Oracle学习——第四讲(增删改查)
  2. html5把六张图片做成立方体,html5 3D旋转的图片立方体代码
  3. 怎么把PDF调方向保存?这几个方法值得收藏
  4. 测试工程师的一点自省感悟
  5. java初始化含十个数的数组_java初始化数组的方法
  6. ACM里的生成函数初探
  7. 手动压缩Outlook PST和OST文件
  8. cpm、cpc、cps和cpa分别是什么意思
  9. GD32F103基础教程—GPIO输出实验(五)
  10. tiledmap 图块属性_Tiled Editor 图块的两种导入方式