Go 言語の関数は Goroutine と連携します
Coroutine (Goroutine) は、Go 言語の軽量な並列実行メカニズムです。機能と連携して、高性能でスケーラブルな同時プログラムを作成できます。
関数
Go 言語の関数は、特定のタスクを実行して結果を返すコード ブロックのコレクションです。関数はパラメータを受け入れ、値または参照で渡すことができます。
func add(a, b int) int { return a + b }
Goroutine
Goroutine は、Go ランタイムによって管理される軽量の実行スレッドです。これは、次のように go
キーワードを使用して作成されます。
go func() { // Goroutine 正在执行的任务 }
Collaboration
関数とゴルーチンは連携して並行プログラムを作成できます。関数はゴルーチンを開始してタスクを実行でき、ゴルーチンは関数の実行が完了した後に関数をコールバックできます。
実践的なケース
ゴルーチンを開始してフィボナッチ数列を計算する次のコード例を考えてみましょう:
func main() { // 启动一个 Goroutine 来计算第 n 个斐波那契数 n := 5 fib := make(chan int) go func() { fib <- fib(n) }() // 在 main Goroutine 中接收计算结果 result := <-fib fmt.Println("第", n, "个斐波那契数为:", result) } func fib(n int) int { if n <= 1 { return n } return fib(n-1) + fib(n-2) }
この場合、 main()
この関数は、5 番目のフィボナッチ数を計算するゴルーチンを開始します。 fib()
関数はゴルーチンで実行され、結果は main()
関数のチャネル fib
に返されます。 main()
この関数はチャネルから結果を受け取り、それを出力します。
この共同アプローチにより、コードの順序と読みやすさを維持しながら、ゴルーチンの同時実行機能を活用できます。
以上がgolang 関数と goroutine がどのように連携するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。