[Java]デーモンプロセススレッド(daemon thread)とスレッドの状態
デーモンプロセススレッド(daemon thread)
void setDaemon(boolean on):スレッドをデーモンスレッドまたはユーザースレッドに変更します.(パラメータonをtrueとして指定すると、デーモンプロセススレッドになります.)
IllegalThreadStateException
が生成されます.サンプルコード
public class Ex13_7 implements Runnable{
static boolean autoSave = false;
public static void main(String[] args) {
Thread t = new Thread(new Ex13_7()); // Thread(Runnable r)
t.setDaemon(true);
t.start();
for (int i = 1; i <= 10; i++) {
try{
Thread.sleep(1000);
} catch (InterruptedException e){}
System.out.println(i);
if (i == 5) {
autoSave = true;
}
}
System.out.println("프로그램을 종료합니다.");
}
public void run(){
while (true) {
try{
Thread.sleep(3 * 1000);
} catch(InterruptedException e) {}
//autoSave의 값이 true이면 autoSave()를 호출
if(autoSave){
autoSave();
}
}
}
public void autoSave(){
System.out.println("작업파일이 자동저장되었습니다.");
}
}
実行結果
ねじ状態
start()
が呼び出されておらず、RunNABLEが実行されているか、実行可能ステータスBLOCKED同期ブロックによって一時停止(ロック解除待ち)されているが、WAITING、TIMED WAITINGスレッドの操作はまだ終了していないが、実行不可能(Unrunable)一時停止状態にある.TIMED WAITINGは、一時停止時間TERMINTEDスレッドの操作が終了したことを示しますReference
この問題について([Java]デーモンプロセススレッド(daemon thread)とスレッドの状態), 我々は、より多くの情報をここで見つけました https://velog.io/@nathan29849/Java-데몬-쓰레드daemon-thread와-쓰레드의-상태テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol