gpt4 book ai didi

go - golang中的并发模型grpc服务器

转载 作者:IT王子 更新时间:2023-10-29 02:07:02 26 4
gpt4 key购买 nike

我在 golang 中创建了一个示例 gRPC 客户端和服务器(使用 protobufs)。我了解 golang 中的并发模型。但是,我试图了解服务器中的并发模型,该服务器接受来自同一客户端(客户端的多个 goroutine)/多个客户端的并行请求。

更具体地说:

  1. 当一个新的 gRPC 调用到来时,服务器是否创建一个新的 goroutine?
  2. 这些协程共享哪些数据? grpcServer.Serve 是否为跨 goroutine 共享的数据设置边界,即之前设置的所有内容都共享? (我正在考虑 Java 中的线程,其中线程共享全局数据)

最佳答案

When a new gRPC call comes, does server create a new goroutine?

是的,它很可能会创建大量并发 goroutine 来处理每个连接和请求(尤其是流请求)。

What data is shared by these goroutines?

我觉得这个问题太宽泛了。 net/http2google.golang.org/grpc 包中的代码太多,无法在不进行深入调查的情况下回答您的问题。但是,我们可以肯定,这些 goroutine 至少共享服务器本身,因为 ServeConn不是自由函数,而是定义在 http2.Server 类型上的方法。

关于go - golang中的并发模型grpc服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55720390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com