为了账号安全,请及时绑定邮箱和手机立即绑定

带有 gorilla websocket 包的并发 writeJSON

带有 gorilla websocket 包的并发 writeJSON

Go
慕容3067478 2022-06-27 10:42:04
Gorilla WebSocket 文档提到“应用程序负责确保不超过一个 goroutine 并发调用 write 方法,并且不超过一个 goroutine 同时调用 read 方法。”这是否意味着即使有不同的 conn ptr 也没有两个 goroutine 可以同时调用 write 方法,或者这意味着如果我们与不同的 goroutine 共享相同的 conn ptr 则我们不能同时使用该 conn 编写(尽管这似乎很明显)..?
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

每个连接支持一个并发读取器和一个并发写入器。

连接相互独立,不共享任何状态。通常,应用程序中的所有连接都有一个 read 方法的调用者。

该文档解释说,连接支持的并发性比默认的无并发访问假设多。


查看完整回答
反对 回复 2022-06-27
?
慕村9548890

TA贡献1884条经验 获得超4个赞

这是一个基本的并发控制要求,只有一个 goroutine 有写锁。如果只有读锁,那么任何 goroutine 都可以并发读取。但是当一个 goroutine 正在写入时,其他 goroutine 不应该读取或写入相同的值。如果允许,这种情况会产生许多不良状态,例如脏读问题。因此,您应该始终在同时编写某些内容时使用互斥锁获得排他锁(写锁)。



查看完整回答
反对 回复 2022-06-27
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信