面试真题

Go · 中等 · 滴滴

多个协程读写map会怎样,什么是线程安全

中等 Go 🎤 滴滴
参考答案
结论:Go中多个协程并发读写map会触发运行时panic(concurrent map write),线程安全指并发访问下数据逻辑正确且无竞争。核心要点:1. Go原生map非并发安全,内部无锁,并发读写检测失败会崩溃;2. 线程安全含义:操作具备原子性、可见性、有序性,多线程/协程执行与串行结果一致;3. 解决方案:使用sync.Mutex或sync.RWMutex包裹map操作;或用sync.Map(适合读多写少);或通过channel传递数据避免共享;示例:用rwLock保护m map[string]int的读写,防止fatal error。
题目整理自公开面经,答案由校招宝自研生成,仅供参考