- H5W3
- 2021-01-15 17:00:49
type Param struct {
Id int
Name string
Show bool
}
param := Param{1,"name",true}
go func (param *Param){
// 对param进行读写操作
}(¶m)
回答
得看是否有多个Goroutine对param进行读写。
如果是的话,不加锁会出现脏数据
一个gorutine无所谓,2个以上就会出现data race
使用读写锁,或者利用两个gorutine将读写(写还是要顺序执行)分开两个通道操作;
或者单gorutine来进行操作,遇到写操作就顺序执行,读操作并发执行