多线程----守护线程---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;
    }

    @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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值