実行中のゴルーチンの中断 (*TCPListener) Accept
TCP 接続を介してクライアントに応答するサーバーを作成する場合、ゴールーチン(*TCPListener).Accept() を使用して受信接続を処理するためによく使用されます。サーバーを正常にシャットダウンし、この呼び出しでブロックされているゴルーチンを中断する方法について疑問が生じます。
(*TCPListener).Accept() のドキュメントには、次の接続を待機し、汎用のメソッドを返すと記載されています。ただし、このブロック操作を中断する方法に関する情報は限られています。
解決策は、(TCPListener).Close() を使用することです。これにより、リスナーが閉じられ、ゴルーチンが実行されます (TCPListener).Accept() を返します。これにより、サーバーを正常にシャットダウンし、ゴールーチンを中断できるようになります。その後、ゴールーチンは呼び出しから戻り、サーバーが正常に終了できるようにする必要があります。
以上が(*TCPListener).Accept() を実行しているゴルーチンを正常に中断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。