Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuat tugasan selari menggunakan saluran paip dalam Go?

Bagaimana untuk membuat tugasan selari menggunakan saluran paip dalam Go?

PHPz
PHPzasal
2024-06-04 14:46:11723semak imbas

Pipeline ialah mekanisme komunikasi tanpa buffer yang boleh digunakan untuk membuat tugasan selari: Cipta paip: ch := make(chan int) Hantar data: ch <- i Terima data: untuk v := julat ch { fmt.Println(v ) }

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

Cara membuat tugasan selari menggunakan saluran paip dalam bahasa Go

Saluran paip ialah mekanisme komunikasi tanpa buffer yang digunakan untuk menghantar data antara coroutine Go. Paip boleh digunakan untuk mencipta tugas selari untuk memproses berbilang input atau output secara serentak.

Buat paip

Gunakan fungsi make untuk mencipta paip dan nyatakan jenis nilai untuk dihantar atau diterima: 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)
}

Hantar data

Gunakan <- kod> operator Menghantar data ke saluran paip:

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

Menerima data

Menggunakan operator <- untuk menerima data daripada saluran paip:

rrreee

Contoh praktikal: sum
  • Contoh berikut menunjukkan bagaimana untuk menggunakan saluran paip untuk mencipta tugasan selari Untuk mengira jumlah sekumpulan nombor:
  • rrreee
  • Dalam contoh ini, coroutine bertanggungjawab untuk mengira jumlah dan menghantarnya ke paip. Coroutine utama menerima keputusan daripada paip dan mencetaknya.
  • Ini hanyalah contoh mudah menggunakan saluran paip untuk mencipta tugasan selari. Ia boleh digunakan dalam pelbagai senario, seperti:
🎜Berbilang coroutine memproses data 🎜🎜Pengkomputeran teragih 🎜🎜Pemprosesan acara 🎜🎜

Atas ialah kandungan terperinci Bagaimana untuk membuat tugasan selari menggunakan saluran paip dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn