码迷,mamicode.com
首页 > 编程语言 > 详细

Go语言,用原子函数atomic避免资源竞争

时间:2017-06-30 17:06:10      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:资源   nis   runtime   ima   语言   div   syn   group   alt   

下一步应该是互斥锁了。

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避免资源竞争

标签:资源   nis   runtime   ima   语言   div   syn   group   alt   

原文地址:http://www.cnblogs.com/aguncn/p/7099050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!