Thread.setDaemon

忽然在某段程序中看到了Thread.setDaemon的用法,经过学习以后了解:

1. setDaemon需要在start方法调用之前使用

2. 线程划分为用户线程和后台(daemon)进程,setDaemon将线程设置为后台进程

3. 如果jvm中都是后台进程,当前jvm将exit。(随之而来的,所有的一切烟消云散,包括后台线程啦)

4. 主线程结束后,

      4.1 用户线程将会继续运行

      4.2 如果没有用户线程,都是后台进程的话,那么jvm结束

 

sample:

 

 

package a.b.c; import java.io.IOException; public class TestThread extends Thread { public TestThread() { } /** *//** * 线程的run方法,它将和其他线程同时运行 */ public void run(){ for(int i = 1; i <= 100; i++){ try{ Thread.sleep(100); } catch (InterruptedException ex){ ex.printStackTrace(); } System.out.println(i); } } public static void main(String [] args){ TestThread test = new TestThread(); // 如果不设置daemon,那么线程将输出100后才结束 test.setDaemon(true); test.start(); System.out.println("isDaemon = " + test.isDaemon()); try { System.in.read(); // 接受输入,使程序在此停顿,一旦接收到用户输入,main线程结束,守护线程自动结束 } catch (IOException ex) { ex.printStackTrace(); } } }

 

 

你可能感兴趣的:(jvm,thread,String,Class)