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
		}
	}
}


本文来自:开源中国博客

感谢作者:亓斌哥哥

查看原文:golang学习的点点滴滴:锁的使用

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。