デーモンスレッド(Daemon)


デーモンスレッド(Daemon['diːmən] )
JAvaスレッドには、ユーザースレッド、デーモンスレッドの2種類があります.
デーモンスレッド:プログラムが実行されている間にバックグラウンドで共通のサービスを提供するスレッドを指します.例えば、スペルチェックスレッドです.それはデーモンスレッドです.彼はできるだけ原稿を書くのを邪魔しないでください.あなたたちは同時に行うことができます.彼はスペルミスを発見したときにステータスバーにエラーを表示しますが、無視することができます.したがって、すべての非デーモンスレッドが終了すると、プログラムは終了し、プロセス内のすべてのデーモンスレッドを殺すことになります.逆に言えば、非デーモンスレッドがまだ実行されている限り、プログラムは終了しません.
スレッドをデーモンスレッドに変換することは、ThreadオブジェクトのsetDaemon(true)メソッドを呼び出すことによって実現することができる.デーモンスレッドを使用する場合は、次の点に注意してください.
(1)thread.setDaemon(true)はthread.start()の前に設定する必要があります.
(2)Daemonスレッドで生成された新しいスレッドもDaemonである.
(3)デーモン・スレッドは、いつでも1つの操作の間で中断されるため、ファイル、データベースなどの固有のリソースにアクセスしないでください.
コードを添付:

package test.thread;
public class DaemonThread extends Thread{
	@Override
	public void run() {
		for (int i = 0; i < 100; i++) {
			try {
				sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println("      "+i);
		}
	}
	public static void main(String[] args) {
		DaemonThread daemonThread=new DaemonThread();
		//  daemonThread     ,   main           ,daemonThread      
		daemonThread.setDaemon(true);
		daemonThread.start();
		for (int i = 0; i < 10; i++) {
			try {
				sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println("       "+i);
		}
	}
}
//    :
       0
      0
      1
       1
      2
       2
      3
       3
       4
      4
      5
       5
      6
       6
      7
       7
       8
      8
      9
       9