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