package 守护线程;
/*守护线程:线程默认的是非守护线程(也就是用户线程),使用void setDaemon()方法将自己设置成一个守护线程。
- 特点:当所有的用户进程结束运行时,即使守护进程run方法中还有需要执行的语句,它也会立刻结束。它的结束也不会带来任何后果。
- 注意:一个线程必须在运行之前将设置自己是否是守护进程。
*/
Daemon.java
public class Daemon implements Runnable{
Thread A,B; //目标对象组合线程。弱耦合。
Daemon(){
A = new Thread(this);
B = new Thread(this); //利用构造方法,将Daemon对象作为线程的目标对象,
}
public void run(){
if(Thread.currentThread()==A){
for(int i = 0;i<8;i++){
System.out.println("i="+i);
try{Thread.sleep(1000);
}catch(InterruptedException e){}
}
}
else if (Thread.currentThread()==B){
while(true){
System.out.println("B是守护线程");
try{Thread.sleep(1000);
}catch(InterruptedException e){}
}
}
}
}
Example.java
package 守护线程;
public class Example_7 {
public static void main(String[] args) {
Daemon da = new Daemon();
da.A.start();
da.B.setDaemon(true); //运行前将B线程设置为守护线程。
da.B.start();
}
}