首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有gorilla websocket包的并发writeJSON

带有gorilla websocket包的并发writeJSON
EN

Stack Overflow用户
提问于 2020-08-22 19:36:46
回答 2查看 212关注 0票数 0

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

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

gorilla doc link

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-22 20:58:36

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2020-08-22 19:53:51

只有一个goroutine有一个写锁,这是一个基本的并发控制要求。如果只有读锁,那么任何goroutine都可以并发读取。但是,当goroutine正在写入时,其他goroutine不应该读取或写入相同的值。如果允许,这种情况会产生许多不期望状态,例如脏读问题。所以你应该总是在写东西的时候使用互斥锁(写锁)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63535716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档