带有 gorilla websocket 包的并发 writeJSON

Gorilla WebSocket 文档提到“应用程序负责确保不超过一个 goroutine 并发调用 write 方法,并且不超过一个 goroutine 同时调用 read 方法。”

这是否意味着即使有不同的 conn ptr 也没有两个 goroutine 可以同时调用 write 方法,或者这意味着如果我们与不同的 goroutine 共享相同的 conn ptr 则我们不能同时使用该 conn 编写(尽管这似乎很明显)..?


慕容3067478
浏览 178回答 2
2回答

HUH函数

每个连接支持一个并发读取器和一个并发写入器。连接相互独立,不共享任何状态。通常,应用程序中的所有连接都有一个 read 方法的调用者。该文档解释说,连接支持的并发性比默认的无并发访问假设多。

慕村9548890

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

相关分类

Go