Maison > développement back-end > Golang > Comment créer des tâches parallèles à l'aide de pipelines dans Go ?

Comment créer des tâches parallèles à l'aide de pipelines dans Go ?

PHPz
Libérer: 2024-06-04 14:46:11
original
743 Les gens l'ont consulté

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 ) }

如何使用 Go 语言中的管道创建并行任务?

Comment créer des tâches parallèles à l'aide de pipelines en langage Go

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.

Créer un canal

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)
Copier après la connexion

发送数据

使用 <- 运算符向管道发送数据:

go func() {
    for i := 1; i <= 5; i++ {
        ch <- i
    }
}()
Copier après la connexion

接收数据

使用 <-

for v := range ch {
    fmt.Println(v)
}
Copier après la connexion

Envoyer des données

Utilisez le <- 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal