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

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

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