Go で実装された Goroutine: 構文: go func() { ... }。実際のケース: フィボナッチ数列を計算するゴルーチンを作成し、バッファなしのチャネルを通じて結果を送信します。
Go で Goroutine コルーチンを実装するにはどうすればよいですか?
Golang の Goroutine は、タスクを同時に実行するために使用できる軽量のコルーチンです。スレッドとは異なり、Goroutine は軽量で Go ランタイムによって管理されるため、手動で作成または管理する必要はありません。
構文
Goroutine を作成する構文は次のとおりです:
go func() { // Goroutine 的代码 }()
実際のケース
以下は、Goroutine を使用してフィボナッチ数列を計算する実際のケースです:
package main func main() { c := make(chan int) go fibonacci(10, c) for i := range c { fmt.Println(i) } } func fibonacci(n int, c chan int) { x, y := 0, 1 for i := 0; i < n; i++ { c <- x x, y = y, x+y } close(c) }
手順
make(chan int)
は、バッファなしのチャネル c
を作成します。 make(chan int)
创建一个无缓冲通道 c
。go fibonacci(10, c)
启动一个 Goroutine 来计算斐波那契序列并将其发送到通道 c
中。for i := range c
从通道 c
中接收值并打印到标准输出。close(c)
go fibonacci(10, c)
は、ゴルーチンを開始してフィボナッチ数列を計算し、チャネル c
に送信します。 for i := range c
は、チャネル c
から値を受け取り、それを標準出力に出力します。 🎜🎜close(c)
Goroutine の計算が完了した後にチャネルを閉じます。 🎜🎜以上がGoでGoroutineコルーチンを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。