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 关注
- 177 浏览
添加回答
举报
0/150
提交
取消