现在有个变量 a (type A struct{} 且 var a *A) ,想要动态修改 a 的字段 b (var b string) ,在同时多个 goroutine 读的情况下写入会不会不安全?把 b 的类型换成 func() 呢?
|
zmcityNov 1, 2022
1
看看你的场景是不是要求严格时序一致的了,如果是的话加读写锁。
|
|
2
放弃了,按照我的需求好像做不到。。。
|
|
yjhatfdu2Nov 1, 2022
3
可以使用 atomic
|
|
lanlanyeNov 1, 2022
4
多个读一个写的话,写入不会有冲突
|
|
rrfengNov 1, 2022 via Android
5
多个写会冲突,读哪有冲突一说。。。
顶多是读到你预期之外的数据(你以为写了但还没写完) |
|
linghutfNov 2, 2022
7
两种方式:
1. 写时加写锁,读时加读锁 2. 把 a 放在 channel 中在 goroutine 间共享,谁拿到就可以操作 |