Các kênh kết hợp giao tiếp — trao đổi giá trị — với đồng bộ hóa — đảm bảo rằng hai phép tính (goroutines) đang ở trạng thái đã biết.Làm thế nào chúng ta có thể sử dụng các kênh trong Go thay cho mutex?
Làm cách nào để sử dụng các kênh trong Google Go để thực hiện chức năng của mutex?
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()
}
Câu hỏi này loại bỏ lỡ điểm. Bạn nên tự hỏi mình "tại sao tôi muốn một mutex, và làm thế nào tôi có thể sử dụng các kênh thay thế?" –