亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

允許在 net.Conn 和頻道上選擇 Go Routine 的方法?

允許在 net.Conn 和頻道上選擇 Go Routine 的方法?

Go
一只名叫tom的貓 2022-06-27 15:29:51
我覺得這一定是一種常見的 Go 模式,但似乎找不到解決方案。假設有一個 Go 應用程序正在建立出站 TCP 連接。我將使用net.Dial并在連接后生成一個 Go 例程來處理套接字 ( net.Conn)。這是非常簡單和常見的。我想弄清楚的是,讓這個 Go 例程有一個通道,它正在讀取和寫入來自這個套接字的消息的最佳方法是什么?selectonly 能夠在頻道上等待,而不是net.Conn. 我是否輪詢套接字以獲取數據,然后檢查通道以獲取數據?這似乎非常低效。
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

這個問題的一個常見解決方案是創建兩個 goroutine:一個從套接字讀取并寫入通道,另一個從通道讀取并寫入套接字。從套接字讀取的 goroutine 應該在套接字關閉時終止,并向另一個 goroutine 發出信號(通過取消上下文或關閉通道),使其停止在通道上等待。



查看完整回答
反對 回復 2022-06-27
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號