gpt4 book ai didi

go - Go 中的映射不是线程安全的意味着什么?

转载 作者:IT王子 更新时间:2023-10-29 02:33:58 26 4
gpt4 key购买 nike

我想确切地知道当多个 goroutins 访问 go maps 时会发生什么假设我们有一个 map[int]*User。多个 goroutins 修改用户结构的字段会导致数据损坏吗?或者像 len() 这样的操作不是线程安全的如果 map 在 Go 中是线程安全的会有什么不同?

最佳答案

同时修改 *User 可能会导致 regardless map 损坏。从映射中并发读取指针是安全的,只要映射没有被修改。修改 *User 指向的数据不会更改 map 本身。

同时修改 map[int]*User 本身也有数据损坏的风险。

没有良性数据竞争,请始终使用竞争检测器测试您的代码。

关于go - Go 中的映射不是线程安全的意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com