Golang:不应复制包含此包中定义的类型的值

时间:2016-12-19 10:32:14

标签: go synchronization mutex

链接https://golang.org/pkg/sync/声明“不应复制包含此程序包中定义的类型的值。”

为什么会这样?如果我忽略这些建议,会发生什么?

1 个答案:

答案 0 :(得分:3)

它将不再作为同步原语工作。充其量你会得到不可预知的行为。 将锁(例如)视为标志。如果它被锁定,则设置标志。如果您复制该锁(复制该标志的状态),则该副本的行为就像它被锁定一样。如果您解锁副本,原件将不会更改,因此它的行为就像锁定它不再被锁定一样。