java多线程-守护线程-Daemon

  • 只要当前JVM中尚有任何一个非守护线程没有结束,守护线程就全部工作
  • 只有当JVM中最后一个非守护线程结束时,守护线程就会随着JVM一起结束工作
  • 守护线程的作用为其他线程的运行提供便利,守护线程最典型的应用是GC(垃圾回收器)。
  • 守护线程并非只有JVM内部提供,用户在编程时可以自己设置守护线程
  • thread.setDaemon(true)
  • thread.setDaemon(true)必须在start()之前设置
  • 不能把正在运行的线程设置为守护线程

package com.gdzy.Thread;

public class DaemonThreadTest {

	public static void main(String[] args) {
		
		Thread com = new MyCommon();
		
		Thread td1 = new MyDaemon();
		
		td1.setDaemon(true);
		
		td1.start();
		
		com.start();
		
	}

}

class MyDaemon extends Thread{
	
	public void run(){
		for(int i=0;i<10000000000l;i++){
			System.out.println("守护线程第"+i+"次输出");
			try{
				Thread.sleep(10);
			}catch(Exception e){
				
			}
		}
	}
	
}

class MyCommon extends Thread{
	
	public void run(){
		for(int i=0;i<10;i++){
			System.out.println("普通线程第"+i+"次输出");
			try{
				Thread.sleep(1000);
			}catch(Exception e){
				
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_39646626/article/details/80726347