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

App Engine Channel API 的线程安全性/原子性

App Engine Channel API 的线程安全性/原子性

Go
呼啦一阵风 2021-06-25 03:07:58
当我尝试使用 Google App Engine 的 Channel API 发送来自两个或多个 goroutine 和/或任务队列的消息时会发生什么?例如go channel.Send(context, clientID, "Hello") go channel.Send(context, clientID, "World")我知道在 GAE Go 中,所有的 goroutine 都被复用到一个线程上。然而,这仍然允许在 I/O 期间进行抢占,并且大概通道发送符合 I/O 的条件。GAE 开发服务器似乎序列化了所有请求,所以我没有看到任何通道发送重叠。生产服务器似乎允许一些请求并发,但通道发送看起来是原子的,或者至少从不同的线程/goroutines 调用是安全的。
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

一般来说,App Engine API 调用可以并发调用,只要它们不会写入相同的内存(例如,使用相同目标结构的两个 datastore.Get 调用是不安全的)。


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

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