Warning: include_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 2

Warning: include_once(http://www.confrage.com/bin/header.php): failed to open stream: no suitable wrapper could be found in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 2

Warning: include_once(): Failed opening 'http://www.confrage.com/bin/header.php' for inclusion (include_path='.:/usr/local/php/5.6/lib/php') in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 2
デーモンスレッド | Java | 株式会社CONFRAGE
Warning: include_once(/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/menu.php): failed to open stream: No such file or directory in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 17

Warning: include_once(): Failed opening '/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/menu.php' for inclusion (include_path='.:/usr/local/php/5.6/lib/php') in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 17
デーモンスレッド
デーモンスレッドとは、プログラムがスレッドの実行終了を待たないでプログラム終了することができるスレッドのことを デーモンスレッド といいます。
要するにデーモンスレッドが実行中でもプログラムが終了してしまえば、デーモンスレッドは実行されません。

スレッドをデーモンスレッドにするには setDaemon(true) メソッドを実行する必要があります。
以下、スレッドクラスの例を見てください。例では0.01秒ごとに実行中スレッドの名前を出力します。

public class MyThread implements Runnable{
    public void run(){
        for (int i=0;i<10;i++){
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName());
        }
    }
}
以下のTESTクラスでは、上記スレッドクラスをインスタンス化し、スレッドを実行している例です。

public class TEST {
    public static void main(String[] args){
        MyThread thread1 = new MyThread();
        
        Thread th = new Thread(thread1);
        th.setDaemon(true);//デーモンスレッドにする
        th.start();
        
        System.out.println("状態: " + th.isAlive());
    }
}
上記、Javaアプリケーションを実行すると、1秒ごとにスレッド名が表示され、結果は以下のようになります。
プログラムがデーモンスレッドの実行中に停止しているため、スレッド名が3回出力後プログラムが終了していることがわかります。

状態: true
Thread-0
Thread-0
Thread-0
start()メソッドを呼ぶ前にsetDaemon(false)にすればデーモンスレッドではなくなるため(start()メソッドを呼んだ後にsetDaemon()メソッドを呼ぶと例外がthrowされる。)、全てのスレッドが終了すると同時にプログラムが終了されるようになります。
このようにプログラムがスレッドの実行終了を待つようなスレッドを ユーザスレッド と言います。
ちなみにデフォルトはユーザスレッドです。

Back to top

Information

Warning: include_once(/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/side_bar.php): failed to open stream: No such file or directory in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 97

Warning: include_once(): Failed opening '/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/side_bar.php' for inclusion (include_path='.:/usr/local/php/5.6/lib/php') in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 97

Warning: include_once(/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/seo.php): failed to open stream: No such file or directory in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 106

Warning: include_once(): Failed opening '/home/sites/heteml/users/m/o/r/moriya-h5/web/confrage/bin/seo.php' for inclusion (include_path='.:/usr/local/php/5.6/lib/php') in /home/users/2/moriya-h5/web/confrage/java/thread/daemon_thread/daemon_thread.html on line 106