多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> ### 为什么需要锁? - 数据被多个协程共享时, 很有可以产生争用和冲突. 这种情况也被称为竞态条件这往往会破坏共享数据的一致性 ```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)