java setdaemon_java教程--守护线程setDaemon

守护线程setDaemon

守护线程:

为用户线程进行服务的线程.当所有的用户线程都执行结束以后无论守护线程的线程体是否执行完,守护线程都会结束

设置守护线程

void

(boolean on)将该线程标记为守护线程或用户线程。

t.setDaemon(true);

MyThread01.java

public class MyThread01 implements Runnable {

public void run() {

for (int i = 1; i <= 100; i++) {

System.out.println(Thread.currentThread().getName() + "~~~" + i);

}

}

}

MyThread02.java

public class MyThread02 extends Thread {

public void run() {

for (int i = 1; i <= 100; i++) {

System.out.println(this.getName() + "*_*" + i);

}

}

}

Test.java

public class Test {

public static void main(String[] args) {

Thread t1 = new Thread(new MyThread01());

Thread t2 = new MyThread02();

// 把t2 设置为守护线程

// 守护线程:为用户线程进行服务的线程.当所有的用户线程都执行结束以后

// 无论守护线程的线程体是否执行完,守护线程都会结束

t2.setDaemon(true);

t1.start();

t2.start();

for (int i = 1; i <= 100; i++) {

System.out.println(Thread.currentThread().getName() + "<><>" + i);

}

}

}

注意: main线程是主线程,不是守护线程,也不能设置为守护线程。

判断守护线程的方法

boolean

()测试该线程是否为守护线程。

t2.isDaemon();

守护线程setDaemon 守护线程: 为用户线程进行服务的线程.当所有的用户线程都执行结束以后无论守护线程的线程体是否执行完,守护线程都会结束 设置守护线程 void (boolean on)将该线程标记为守护线程或用户线程。 t.setDaemon(true); MyThread01.java public class MyThread01 implements Runnable { public void run() { for (int i = 1; i <= 100; i++) { System.out.println(Thread.currentThread().getName() + "~~~" + i); } } } MyThread02.java public class MyThread02 extends Thread { public void run() { for (int i = 1; i <= 100; i++) { System.out.println(this.getName() + "*_*" + i); } } } Test.java public class Test { public static void main(String[] args) { Thread t1 = new Thread(new MyThread01()); Thread t2 = new MyThread02(); // 把t2 设置为守护线程 // 守护线程:为用户线程进行服务的线程.当所有的用户线程都执行结束以后 // 无论守护线程的线程体是否执行完,守护线程都会结束 t2.setDaemon(true); t1.start(); t2.start(); for (int i = 1; i <= 100; i++) { System.out.println(Thread.currentThread().getName() + "<><>" + i); } } } 注意: main线程是主线程,不是守护线程,也不能设置为守护线程。 判断守护线程的方法 boolean ()测试该线程是否为守护线程。 t2.isDaemon();
经验分享 程序员 微信小程序 职场和发展