Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk membuat tugasan selari menggunakan saluran paip dalam Go?
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 ) }
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.
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!