[Java]thread-デーモンプロセススレッド、実行制御
Javaによる定式学習の内容をまとめた.
は、通常のThreed作業に協力する補助的なThreedである. の通常スレッドがすべて終了すると、デーモンスレッドは自動終了を強制します. ゴミ収集器、自動記憶ワープロ、自動リフレッシュスクリーンなどがDemon Threadの例です. booleanisDaemon()-スレッドがデーモンプロセスであることを確認します
void setDaemon(boolean on)-スレッドをデーモンスレッドとして指定する場合に使用デーモンプロセスは、無限ループと条件文を使用して作成され、実行後に待機し、特定の条件を満たすとタスクを実行し、再待機します. デーモンの作成後にsetDaemonが設定されていない場合、プログラムは実行されます.
の効率的なマルチスレッドプログラミングを実現するために、スレッドはリソースを無駄にしないで使用する必要があります.
NEW-ねじが生成され、start() は呼び出されません. RunNABLE-運転または実行可能状態 BLOCKED-同期ブロックによって一時停止された WAITING-スレッドが終了していないが実行できない休止状態 TIMED WAITING-一時停止時間が指定する状態 TERMINTED-スレッドが終了しました
static void sleep(long millis)
static void sleep(long millis, int nanos)一定時間以内にThreadを停止します. 静的メソッドなので、現在はスレッドでしか使用できません. sleep()は、指定された時間内に完了するか、interrupt()(異常発生)によって起動されます. したがって、try-catch文を頻繁に使用して例外を処理する必要があります. 異常を処理するたびに面倒なので、上記の関数も作成して使用します.
void interrupt()-スレッドの割り込みステータスをtrueに変更
boolean isInterrupted()-ねじの割り込み状態を返します
静的ブール割込み()-現在のスレッドの割込みステータスを返しfalseに変更します.待機状態(WAITING)のスレッドを運転待機状態(RUNNABLE)に設定します.
void suspend()-スレッドを一時停止
void resume()-suspend()によって一時停止されたスレッドを実行待ち状態にする
void stop()-スレッドを直ちに終了これらの方法はデッドロックを引き起こすため、使用は推奨されません. Java APIドキュメントにもDepentedと明記されています.
void join()-すべてのタスクの完了を待つ
void join(long millis)-指定の1/1000秒を待つ
void join(long millis,int nanos)-1/1000秒、待機ナノ秒スレッドは自分の作業を停止し、特定のスレッドが指定された時間内にタスクを実行するのを待つ. sleep()と同様にinterrupt()によって待機状態から抜け出すことができるので、try-catch文を使用する必要があります.
残りの時間を次のスレッドに譲り、現在スレッドが待機しています. 収量()および割り込み()が正しく使用されると、応答性および効率が向上する. OSスケジューラのみ通知し、必ず実行する保証はありません. それでも、使用収量()は効果がないわけではありません.
1.デーモンプロセススレッド(daemon thread)
void setDaemon(boolean on)-スレッドをデーモンスレッドとして指定する場合に使用
2.スレッドの実行制御
2-1. ねじ状態
2-2. 実行制御方法
1) sleep
static void sleep(long millis)
static void sleep(long millis, int nanos)
void delay(long millis){
try{
Thread.sleep(millis);
}
catch(InterruptedException e) {}
}
2) interrupt()
void interrupt()-スレッドの割り込みステータスをtrueに変更
boolean isInterrupted()-ねじの割り込み状態を返します
静的ブール割込み()-現在のスレッドの割込みステータスを返しfalseに変更します.
3) suspend(), resume(), stop()
void suspend()-スレッドを一時停止
void resume()-suspend()によって一時停止されたスレッドを実行待ち状態にする
void stop()-スレッドを直ちに終了
4) join()
void join()-すべてのタスクの完了を待つ
void join(long millis)-指定の1/1000秒を待つ
void join(long millis,int nanos)-1/1000秒、待機ナノ秒
5) yield()
Reference
この問題について([Java]thread-デーモンプロセススレッド、実行制御), 我々は、より多くの情報をここで見つけました https://velog.io/@eeminsu/Java-thread-데몬-쓰레드-실행-제어テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol