長時間実行される Go プログラムを存続させるためのベスト プラクティス
長時間実行される Go プログラムを途中で終了させずに実行することは、特定のアプリケーション。 main 関数が終了するとプログラムも終了し、実行中のゴルーチンはすべて孤立したままになります。プログラムが有効なときに存続していることをどのように確認しますか?
メインのゴルーチンが終了するのを防ぐための一般的な戦術の 1 つは、fmt.Scanln() への単純な呼び出しを使用することです。ただし、コンソールとの対話を意図していない場合、このオプションには問題があります。
代わりに、次の推奨事項を検討してください:
永久ブロック:
無期限待機の場合は、select {} を使用してメインの goroutine をブロックします。このアプローチにより、select ステートメントが中断されない限り、プログラムは確実に存続します。
package main import ( "fmt" "time" ) func main() { go forever() select {} // block forever } func forever() { for { fmt.Printf("%v+\n", time.Now()) time.Sleep(time.Second) } }
以上が長期にわたって実行されている Go プログラムが途中で終了しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。