grpc message contains sync.Mutex

2024-03-16  本文已影响0人  五岁小孩

grpc message contains sync.Mutex 不可进行值复制 - Jxy 博客

grpc生成的message对应的struct在引用的时候尽可能使用指针,因为在生成的xxx.pb.go中的Struct内嵌了一个state(protoimpl.MessageState)该类型内部包含一个pragma.DoNotCopy(sync.Mutex),所以我们在代码中如果需要复制struct对象的话:

1.值拷贝:使用pb.clone(x).(类型)

2.指针引用,如果不是指针引用的话,虽然代码不一定出错,但是很有可能出现死锁,因为锁是不可复制的

上一篇下一篇

猜你喜欢

热点阅读