多线程----守护线程---Deamon

来源:互联网 发布:用数据包怎么传淘宝 编辑:程序博客网 时间:2024/06/05 15:36

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;    }    @Override    public 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;    }    @Override    public 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

原创粉丝点击