我的代碼有點複雜,但簡單地說,它有多個go例程,所有撥號不同的tcp服務器和讀取for循環時的輸入在流上存在可讀的消息。到現在爲止還挺好。現在有另一個去管理以前的一羣'客戶',並在用戶需要時關閉它們。爲此,我已將每個'conn'與適當的常規客戶關聯起來並關閉它。conn.Read去關閉conn通過其他去例行程序的無限循環
我面臨的問題是,只要我調用任何conn對象的close函數,其相應的Read函數就會在無限循環中連續讀取空字符串。
我寫了一個簡單的代碼,它類似於我在處理多個連接去routines- https://play.golang.org/p/wq7zt9Kqz7
TL的方式; DR
總之我有一個「類」,這代表一個遠程服務器的地址,conn,waitgroup在裏面,我創建了它的多個實例並在不同的go例程中處理它們的輸入。而在另一個去例程中,我試圖關閉其中一個實例,並且這個read()會無限期地循環。
您是否正確關閉了waitgroup(我在問,因爲示例代碼沒有提及任何關於它的內容)另外,如果您正確關閉子例程,示例代碼不會記錄文檔。 – Fallen