パイプラインは、並列タスクの作成に使用できるバッファなしの通信メカニズムです。 パイプの作成: ch := make(chan int) データの送信: ch <- i データの受信: for v := range ch { fmt.Println(v ) }
パイプラインは、Go コルーチン間でデータを渡すために使用されるバッファーなしの通信メカニズムです。パイプを使用すると、複数の入力または出力を同時に処理する並列タスクを作成できます。
make
関数を使用してパイプを作成し、送受信する値のタイプを指定します: 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> 演算子 パイプラインへのデータの送信: 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)
}
ログイン後にコピー データの受信 <-
演算子を使用してパイプラインからデータを受信する: rrreee
実用的な例: sum
- 次の例は、その方法を示しています。パイプラインを使用して並列タスクを作成するには 一連の数値の合計を計算するには:
rrreee- この例では、コルーチンが合計を計算してパイプラインに送信します。メイン コルーチンはパイプから結果を受け取り、それらを出力します。
- これは、パイプラインを使用して並列タスクを作成する簡単な例にすぎません。次のようなさまざまなシナリオで使用できます:
🎜データを処理する複数のコルーチン 🎜🎜分散コンピューティング 🎜🎜イベント処理 🎜🎜以上がGo 言語でパイプラインを使用して並列タスクを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。