ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> ### 为什么需要锁? - 数据被多个协程共享时, 很有可以产生争用和冲突. 这种情况也被称为竞态条件这往往会破坏共享数据的一致性 ```go package main import ( "time" "fmt" ) var number int func main() { go func() { for i := 0; i < 10000; i++ { number++ } }() go func() { for i := 0; i < 10000; i++ { number++ } }() go func() { for i := 0; i < 10000; i++ { number++ } }() time.Sleep(time.Second * 3) fmt.Println(number) //打印结果少于30000 } ``` > ### 相关阅读 - [5个步骤,教你瞬间明白线程和线程安全](https://my.oschina.net/u/3178270/blog/1982447)