golang之锁
Go语言提供了传统的同步goroutine的机制,就是对共享资源加锁。如果需要顺序访问一个整形变量或者一段代码,atomic和sync包里的函数提供了很好的解决方案。
原子函数:atmoic.AddInt64 atmoic.LoadInt64 atmoic.StoreInt64
AddInt64 这个函数会同步整型值的加法,方法是强制同一时刻只能有一个goroutine运行并完成这个加法操作。当goroutine试图去调用任何原子函数时,这些goroutine都会自动根据所引用的变量做同步处理。
另外两个有用的原子函数LoadInt64 和 StoreInt64,这两个函数提供了一种安全地读写一个整型值的方式。
互斥锁:
sync.Mutex
人生就是要不断折腾