我正在看一下grpc的教程 https://grpc.io/docs/tutorials/basic/go.html
grpc一元调用看起来像这样
conn, err := grpc.Dial(*serverAddr)
if err != nil {
...
}
defer conn.Close()
client := pb.NewRouteGuideClient(conn)
feature, err := client.GetFeature(context.Background(), &pb.Point{409146138, -746188906})
if err != nil {
...
}
我想知道我是否打电话
client.GetFeature
来自多个线程,是否是线程安全的?
答案 0 :(得分:2)
调查此issue,您可以了解到:
@rubenv问道:
我可以并行使用不同线程的客户端吗?
@iamqizhao回复:
在客户端,如果要并行执行多个rpc,则应该 因为rpc是,所以产生多个goroutine来做到这一点 同步/阻挡
答案是肯定的,但是,无法共享流(source)。
@trevorgray,这些并发主题显然仍然存在 没有记录,每#682。