1.Thread.setDaemon(boolean on):設置為守護線程或者用戶線程。
2.通過Thread.setDaemon(false)設置為用戶線程,用於為系統中的其它對象和線程提供服務;通過Thread.setDaemon(true)設置為守護線程,在沒有用戶線程可服務時會自動離開;如果不設置此屬性,默認為用戶線程。
3.setDaemon需要在start方法調用之前使用
4.用Thread.isDaemon()來返回是否是守護線程
5.如果jvm中都是守護進程,當前jvm將退出。
exp:
/** * @author laugher_ccc * @datetime 2016年7月11日 上午10:00:45 * */ public class DaemonTest extends Thread{ public void run() { //永真循環線程 for(int i=0;;i++){ try { Thread.sleep(1000); } catch (InterruptedException ex) { } System.out.println(i); } } public static void main(String [] args){ DaemonTest test = new DaemonTest(); test.setDaemon(true); //調試時可以設置為false,那么這個程序是個死循環,沒有退出條件。設置為true,即可主線程結束,test線程也結束。 test.start(); System.out.println("isDaemon = " + test.isDaemon()); try { System.in.read(); // 接受輸入,使程序在此停頓,一旦接收到用戶輸入,main線程結束,守護線程自動結束 } catch (IOException ex) {} } }