Les canaux combinent la communication - l'échange d'une valeur - avec la synchronisation - garantissant que deux calculs (goroutines) sont dans un état connu.Comment pouvons-nous utiliser des canaux dans Go à la place de mutex?
Comment est-il possible d'utiliser les canaux de Google Go pour exécuter les fonctionnalités de 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()
}
Cette question passe à côté du genre point. Vous devriez vous demander "pourquoi je veux un mutex, et comment puis-je utiliser des canaux à la place?" –