開發回應TCP 客戶端的伺服器時,開發者可能會遇到需要徹底關閉的情況伺服器並中斷目前在(*TCPListener) Accept 函數中阻塞的goroutine。這個函數負責等待下一個客戶端連接,並傳回一個通用的Conn。
但是Accept的文檔說明它等待下一個調用,這可能會導致對如何中斷阻塞的goroutine產生困惑。該文件也缺乏全面的錯誤處理資訊。
要解決此問題,只需對從 net.Listen(...) 呼叫取得的 net.Listener 物件使用 Close() 方法即可。此操作關閉偵聽器,中斷在 Accept 中等待的 goroutine。必須立即從正在執行的 Goroutine 返回,以防止任何潛在的競爭條件。
以上是如何中斷 (*TCPListener) Accept 中阻塞的 goroutine?的詳細內容。更多資訊請關注PHP中文網其他相關文章!