Pipeline est un mécanisme de communication sans tampon qui peut être utilisé pour créer des tâches parallèles : Créer un canal : ch := make(chan int) Envoyer des données : ch <- i Recevoir des données : for v := range ch { fmt.Println(v ) }
Les pipelines sont un mécanisme de communication sans tampon utilisé pour transmettre des données entre les coroutines Go. Les tuyaux peuvent être utilisés pour créer des tâches parallèles afin de traiter plusieurs entrées ou sorties simultanément.
Utilisez la fonction make
pour créer un canal et spécifiez le type de valeur à envoyer ou à recevoir : make
函数创建管道,并指定要发送或接收的值的类型:
var ch chan int ch = make(chan int)
使用 <-
运算符向管道发送数据:
go func() { for i := 1; i <= 5; i++ { ch <- i } }()
使用 <-
for v := range ch { fmt.Println(v) }
<- code> Envoi de données au pipeline : package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan int)
go func() {
sum := 0
for i := 1; i <= 1000000; i++ {
sum += i
}
ch <- sum
}()
result := <-ch
fmt.Println("The sum is:", result)
}
Copier après la connexion Réception de données Utilisation de l'opérateur <-
pour recevoir des données du pipeline : rrreee
Exemple pratique : sum
- L'exemple suivant montre comment utiliser des pipelines pour créer des tâches parallèles Pour calculer la somme d'un tas de nombres :
rrreee- Dans cet exemple, une coroutine est chargée de calculer la somme et de l'envoyer dans le tuyau. La coroutine principale reçoit les résultats du tube et les imprime.
- Ceci n'est qu'un exemple simple d'utilisation de pipelines pour créer des tâches parallèles. Il peut être utilisé dans divers scénarios, tels que :
🎜Traitement de données par plusieurs coroutines 🎜🎜Informatique distribuée 🎜🎜Traitement d'événements 🎜🎜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!