パイプラインは、Goroutine 間でデータを共有するための Go 言語の通信メカニズムです。パイプは、読み取りエンドと書き込みエンドの両方を持つ make(chan type) 関数を介して作成できます。次の関数例は、パイプを介してデータを共有し、2 つの数値を加算し、パイプを介して結果を送信します。 2 つのパイプを作成し、1 つは数値の入力用、もう 1 つは結果の出力用です。 Goroutine を開始して addNumbers 関数を実行します。数値を入力パイプに送信します。入力パイプを閉じます。出力パイプから結果を受け取って出力します。
Go 関数はパイプを使用してデータを共有します
パイプラインは Go 言語の非常に重要な通信メカニズムであり、ゴルーチン間でデータを共有します。この記事では、Go 関数でパイプを使用してデータを共有する方法を実践例とともに紹介します。
パイプの基本
パイプは、Goroutine 間でデータを転送するために使用されるバッファなしまたはバッファ付きのキューです。パイプには読み取りと書き込みの両端があり、さまざまな方法で作成できますが、最も一般的には make(chan type)
関数を使用します。
関数の例
次の関数例は、2 つの数値を加算し、結果をパイプ経由で送信します。
func addNumbers(input chan int, output chan int) { for { num1, ok := <-input if !ok { close(output) return } num2, ok := <-input if !ok { close(output) return } output <- num1 + num2 } }
使用例
この関数を使用してデータを共有するには、次のコードを使用できます。
func main() { input := make(chan int) output := make(chan int) go addNumbers(input, output) input <- 10 input <- 20 close(input) result := <-output fmt.Printf("Result: %d\n", result) }
このコードは、入力数値用と出力結果用の 2 つのパイプを作成します。 Goroutine を開始して addNumbers
関数を実行し、2 つの数値を入力パイプに送信します。入力パイプが閉じられると、関数は出力パイプを閉じ、完了を示します。次に、出力パイプから結果を受け取り、コンソールに出力します。
結論
Go のパイプを使用すると、関数がデータを簡単に共有できます。 Goroutines を使用すると、データを並列処理し、アプリケーションのパフォーマンスを向上させることができます。
以上がGolang 関数がパイプを介してデータを共有する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。