I canali combinano la comunicazione, lo scambio di un valore, con la sincronizzazione, garantendo che due calcoli (goroutine) siano in uno stato noto.Come possiamo usare i canali in Go al posto del mutex?
Come è possibile utilizzare i canali in Google Go per eseguire la funzionalità di 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()
}
Questa domanda tipo di non coglie il punto. Dovresti chiederti "perché voglio un mutex, e come posso usare i canali, invece?" –