写一个简单的golang多线程demo

bluesky1年前 ⋅ 950 阅读
package main

import ( 
	"fmt" 
	"sync" 
	"time"
)

//定义一个全局变量 
var count int

//创建互斥锁
var mu sync.Mutex

//模拟多个线程同时对 count 加 1
func add() { 
	mu.Lock()
	t := count 
    time.Sleep(time.Second) 
	t++ 
	count = t 
	mu.Unlock() 
}

func main() { 
	for i := 0; i < 5; i++ { 
		go add() 
	} 
	time.Sleep(time.Second * 3) 
	fmt.Println("result:", count) 
}

全部评论: 0

    相关推荐