golang学习的点点滴滴:锁的使用
package main import ( "fmt" "sync" "runtime" ) var counter int = 0 func Count(lock *sync.Mutex) { lock.Lock() counter++ fmt.Println(counter) lock.Unlock() } func main() { lock := &sync.Mutex{} for i:=0;i<10;i++ { go Count(lock) // 并发执行 } for { lock.Lock() // 锁定 c := counter lock.Unlock() // 解锁 runtime.Gosched() // 把时间片让给别人 if c >= 10 { break } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。