Gorilla WebSocket 文檔提到“應(yīng)用程序負責確保不超過一個 goroutine 并發(fā)調(diào)用 write 方法,并且不超過一個 goroutine 同時調(diào)用 read 方法。”這是否意味著即使有不同的 conn ptr 也沒有兩個 goroutine 可以同時調(diào)用 write 方法,或者這意味著如果我們與不同的 goroutine 共享相同的 conn ptr 則我們不能同時使用該 conn 編寫(盡管這似乎很明顯)..?
2 回答

HUH函數(shù)
TA貢獻1836條經(jīng)驗 獲得超4個贊
每個連接支持一個并發(fā)讀取器和一個并發(fā)寫入器。
連接相互獨立,不共享任何狀態(tài)。通常,應(yīng)用程序中的所有連接都有一個 read 方法的調(diào)用者。
該文檔解釋說,連接支持的并發(fā)性比默認的無并發(fā)訪問假設(shè)多。

慕村9548890
TA貢獻1884條經(jīng)驗 獲得超4個贊
這是一個基本的并發(fā)控制要求,只有一個 goroutine 有寫鎖。如果只有讀鎖,那么任何 goroutine 都可以并發(fā)讀取。但是當一個 goroutine 正在寫入時,其他 goroutine 不應(yīng)該讀取或?qū)懭胂嗤闹?。如果允許,這種情況會產(chǎn)生許多不良狀態(tài),例如臟讀問題。因此,您應(yīng)該始終在同時編寫某些內(nèi)容時使用互斥鎖獲得排他鎖(寫鎖)。
- 2 回答
- 0 關(guān)注
- 196 瀏覽
添加回答
舉報
0/150
提交
取消