实例:
var mutex sync.Mutex //互斥锁
func printer(str string){
mutex.Lock() //加锁
defer mutex.Unlock() //解锁
for _,ch:=range str{
fmt.Printf("%c",ch)
time.Sleep(time.Millisecond*300)
}
}
func user1(){
printer("hello ")
}
func user2(){
printer("world")
}
func main() {
go user1()
go user2()
for {
;
}
}
说明:
var mutex sync.Mutex //声明一个互斥锁
mutex.Lock() //加锁
mutex.Unlock() //解锁
本文介绍了Go语言中如何使用`Mutex`实现互斥锁,通过`Lock()`和`Unlock()`操作确保在`printer`函数中字符串的打印不会相互干扰。用户1和用户2并发调用`user1()`和`user2()`,展示了线程安全的并发控制。
755

被折叠的 条评论
为什么被折叠?



