Go言語 並列処理:基本と実装、goroutine徹底解説
Go言語では、マルチスレッドの概念がGoroutineと呼ばれています。Goroutineは、Go言語のランタイムシステムによって管理される軽量なスレッドです。Goroutineを作成するのは非常に簡単で、関数呼び出しの前にキーワード”go”を追加するだけです。以下は簡単な例です:
package main
import (
"fmt"
"time"
)
func sayHello() {
for i := 0; i < 5; i++ {
fmt.Println("Hello")
time.Sleep(1 * time.Second)
}
}
func main() {
go sayHello()
time.Sleep(3 * time.Second)
fmt.Println("Main function")
}
上記の例では、Goroutineを使用してsayHello()関数を実行しました。main関数では、このGoroutineを”go”キーワードで起動しました。sayHello()関数では、”Hello”を繰り返し出力し、1秒間スリープします。一方、main関数では、”Main function”を出力し、3秒間スリープします。
この例から、Goroutineの使用は非常に簡単で、関数呼び出しの前に”go”キーワードを付け加えるだけで新しいGoroutineを作成し、関数を並行して実行できることがわかります。この並行実行はプログラムのパフォーマンスと効率を向上させることができます。