TCP クライアントに応答するサーバーを開発する場合、開発者は完全にシャットダウンする必要がある状況に遭遇することがあります。サーバーにアクセスし、(*TCPListener) Accept 関数で現在ブロックされているゴルーチンを中断します。この関数は、次のクライアント接続を待機し、汎用 Conn を返す役割を果たします。
ただし、Accept のドキュメントには、次の呼び出しを待機すると記載されており、ブロックしているゴルーチンを中断する方法が混乱する可能性があります。 。また、ドキュメントには包括的なエラー処理情報が不足しています。
この問題に対処するには、net.Listen(...) 呼び出しから取得した net.Listener オブジェクトで Close() メソッドを使用するだけです。このアクションはリスナーを閉じ、Accept で待機しているゴルーチンを中断します。潜在的な競合状態を防ぐために、実行中のゴルーチンから速やかに戻ることが重要です。
以上が(*TCPListener) Accept でブロックされたゴルーチンを中断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。