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.指针引用,如果不是指针引用的话,虽然代码不一定出错,但是很有可能出现死锁,因为锁是不可复制的
网友评论