Bagaimana untuk membuat tugasan selari menggunakan saluran paip dalam Go?

PHPz
Lepaskan: 2024-06-04 14:46:11
asal
728 orang telah melayarinya

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)
Salin selepas log masuk

发送数据

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

go func() {
    for i := 1; i <= 5; i++ {
        ch <- i
    }
}()
Salin selepas log masuk

接收数据

使用 <-

for v := range ch {
    fmt.Println(v)
}
Salin selepas log masuk

Hantar data

Gunakan <- 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)
}
Salin selepas log masuk
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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan