Efficient Select Channels Go programmation simultanée via Golang
Introduction :
Dans le développement de logiciels d'aujourd'hui, la programmation simultanée est devenue un besoin courant. La programmation simultanée nous permet d'utiliser davantage les processeurs multicœurs, améliorant ainsi les performances et l'efficacité des programmes. L'une des caractéristiques de Golang est qu'il offre un solide support pour la programmation simultanée, dont les canaux constituent une partie importante de la programmation simultanée dans Golang. Cet article expliquera comment utiliser l'instruction Select et les canaux dans Golang pour obtenir une programmation simultanée efficace et fournira des exemples de code spécifiques.
Étape 1 : Créer des canaux qui nécessitent une interaction
Tout d'abord, nous devons créer des canaux qui nécessitent une interaction. Vous pouvez utiliser la fonction make() pour créer un canal.
c := make(chan int)
Étape 2 : Créer des Goroutines et communiquer via des canaux
Ensuite, nous pouvons créer plusieurs Goroutines et communiquer des données via des canaux. Dans les goroutines, nous pouvons utiliser des boucles infinies pour envoyer des données en continu.
go func() { for { c <- 1 // 发送数据到Channel } }()
Étape 3 : Utilisez l'instruction Select pour la sélection des données
Enfin, nous pouvons utiliser l'instruction Select pour sélectionner le canal qui doit recevoir des données et traiter les données qu'il contient.
for { select { case <-c: // 处理接收到的数据 } }
package main
import "fmt"
func calculateSum(numbers []int, c chan int) {
sum := 0 for _, num := range numbers { sum += num } c <- sum
}
func main() {
numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} workerCount := 5 c := make(chan int) for i := 0; i < workerCount; i++ { go calculateSum(numbers[i*2:i*2+2], c) } totalSum := 0 for i := 0; i < workerCount; i++ { totalSum += <-c } fmt.Println("Total Sum:", totalSum)
}
Dans le code ci-dessus, nous d'abord Une fonction calculateSum() est définie pour calculer la somme d'une partie des nombres du tableau et envoyer le résultat via le Channel. Ensuite, nous créons un tableau de 10 nombres et spécifions le nombre de goroutines à utiliser. Ensuite, nous avons créé un canal c et utilisé goroutine pour attribuer des tâches à différents Goroutines. Enfin, nous recevons les données du canal à l'aide de l'instruction Select via une boucle for et calculons la somme du tableau. Enfin, nous imprimons les résultats.
Conclusion :
En utilisant l'instruction Select et les canaux dans Golang, nous pouvons réaliser une programmation simultanée efficace. Ce modèle de programmation simultanée permet une meilleure utilisation des processeurs multicœurs et améliore les performances et l'efficacité du programme. Cet article explique comment utiliser les instructions Channels et Select dans Golang pour la programmation simultanée et fournit un exemple de code spécifique. Les lecteurs peuvent modifier le code en fonction de leurs propres besoins et explorer davantage le monde de la programmation simultanée Golang.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!