ゴルーチンは完了前に終了できますか?
この問題は以前に解決されました。ここでの問題は、実行が完了する前にゴルーチンを終了できるかどうかです。
例では、チャネルの使用と、この目的のための選択がよく示されています。これは、ゴルーチンがチャネルの監視を許可する反復タスクに関与する場合に効果的です。ただし、提供されたコード スニペットでは、次のアクションを返す前に 1 つのアクションを実行する goroutine が見つかります:
<code class="go">func main() { stop := make(chan string, 1) go func() { time.Sleep(10 * time.Second) stop <- "stop" return }() <- stop }</code>
Can we halt the execution of this goroutine before its complete?
答え: 制御不可能なゴルーチン
残念ながら、ゴルーチンが戻る前にゴルーチンを終了する直接的な方法はありません (os.Exit を使用してプログラム全体を突然終了する以外)。
ゴルーチンは本質的に自己完結型であり、外部制御の影響を受けません。一度起動すると独立して動作し、強制的に停止することはできません。
以上がゴルーチンは実行が完了する前に終了できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。