Golang中的channel和mutex是用于并发编程的两个重要工具。下面分别介绍它们的使用方法。
ch := make(chan int)
<-
操作符将数据发送到channel。例如:ch <- 10
<-
操作符从channel接收数据。例如:x := <-ch
close
函数关闭channel。例如:close(ch)
select
语句来实现非阻塞的操作。例如:select {
case x := <-ch:
// 接收到数据
case ch <- 10:
// 发送数据成功
default:
// 没有数据可接收或发送
}
sync
包中的Mutex
类型来创建mutex。例如:var mu sync.Mutex
Lock
方法来加锁,使用Unlock
方法来解锁。例如:mu.Lock()
// 临界区代码
mu.Unlock()
需要注意的是,channel和mutex是用于不同的并发场景。channel主要用于goroutine之间的通信,而mutex主要用于保护共享资源的访问。在使用它们时,需要根据具体的需求选择合适的工具。