多线程----守护线程---Deamon
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相关推荐
- python多线程守护线程_Python守护程序线程
python多线程守护线程 In this tutorial we will be learning about Python Daemon Thread. In our previous tutor ...
- python 并发编程 多线程 守护线程
做完工作这个进程就应该被销毁 单线程情况: 一个进程 ,默认有一个主线程 ,这个主线程执行完代码后 ,就应该自动销毁.然后进程也销毁. 多线程情况: 主线程代表进程结束 一个进程可以开多个线程,默认开 ...
- Java多线程—守护线程
运行在程序后台的一个特殊的线程 当程序只剩下守护线程的时候,守护线程会自动退出 守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失. ...
- java多线程 守护线程setDaemon
守护线程 虚拟机分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不需要等待守护线程执行完毕 package state;public class TestDaemon {public s ...
- python 守护线程 join_Python多线程threading join和守护线程setDeamon原理详解
同一进程下的多个线程共享内存数据,多个线程之间没有主次关系,相互之间可以操作:cpu执行的都是线程,默认程序会开一个主线程:进程是程序以及和程序相关资源的集合:某些场景下我们可以使用多线程来达到提高程 ...
- JAVE SE 学习day_09:sleep线程阻塞方法、守护线程、join协调线程同步方法、synchronized关键字解决多线程并发安全问题
一.sleep线程阻塞方法 static void sleep(long ms) Thread提供的静态方法sleep可以让运行该方法的线程阻塞指定毫秒,超时后线程会自动回到RUNNABLE状态,等待 ...
- 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生
线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...
- [javaSE] 多线程(守护线程)
我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...
- Java多线程之守护线程实战
转载自 Java多线程之<<守护线程>>实战 定义 什么是守护线程?与守护线程相对应的就是用户线程,守护线程就是守护用户线程,当用户线程全部执行完结束之后,守护线程才会跟着结束 ...
最新文章
- docker应用到生产环境的前提
- hdu 2433 Travel
- java巴特沃斯滤波器编程_巴特沃斯(Butterworth)滤波器 (1)
- 休眠CascadeType.LOCK陷阱
- Python Tricks(十九)—— switch 的实现
- 计算机二级指针,C语言——二级指针
- mysql 读未提交数据,MySql数据库的事务隔离级别学习
- php自动发卡程序8.0_「亲测」2020新版个人自动发卡源码 php完整个人发卡网搭建源码...
- pyspark 空值填充
- html设置div大小位置不变,div大小 div固定大小设置
- TI公司CC系列的各种芯片的区别 CC2430 CC1100
- 计算机地图制图的生产流程包括,2012注册测绘师综合:计算机地图制图生产工艺...
- 操作数组的一些常用方法及示例
- 存储历史(从古老的绳子记忆到如今)
- 十个值得珍藏的正则表达式
- Apache Passenger配置常用参数解读
- 学计算机需要自控力,上班族,自控力差,怎样才能静下心好好学习?
- Windows10:关于触摸板的驱动不适用的问题
- 【Python】-setting模块的安装
- iOS微信第三方登录