Go语言,用原子函数atomic避免资源竞争
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言,用原子函数atomic避免资源竞争相关的知识,希望对你有一定的参考价值。
下一步应该是互斥锁了。
package main import ( "fmt" "runtime" "sync" "sync/atomic" ) var ( counter int64 wg sync.WaitGroup ) func main() { wg.Add(2) fmt.Println("Create Goroutines") go incCounter(1) go incCounter(2) fmt.Println("Waiting To Finish") wg.Wait() fmt.Println("Final Counter:", counter) } func incCounter(id int) { defer wg.Done() for count := 0; count < 2; count++ { atomic.AddInt64(&counter, 1) runtime.Gosched() } }
以上是关于Go语言,用原子函数atomic避免资源竞争的主要内容,如果未能解决你的问题,请参考以下文章