【发布时间】:2011-04-26 12:11:59
【问题描述】:
通道将通信(值的交换)与同步相结合,确保两个计算(goroutines)处于已知状态。
如何使用 Google Go 中的通道来执行互斥锁的功能?
package main
import "sync"
var global int = 0
var m sync.Mutex
func thread1(){
m.Lock()
global = 1
m.Unlock()
}
func thread2(){
m.Lock()
global = 2
m.Unlock()
}
func main(){
go thread1()
go thread2()
}
【问题讨论】:
-
这个问题有点没抓住重点。您应该问自己“我为什么需要互斥锁,以及如何使用通道来代替?”