【ごるーちん】
Goroutine とは?
最終更新:
💡 小さな働き手に、処理を分けて進める
Goで、他の処理と並行して関数を実行する単位。go文で開始し、GoのランタイムがOSスレッド上で実行を管理する。軽量だが、作成数や完了を待つ方法の設計も必要。
📌 このページのポイント
goroutineは、何をするもの?
Goで、関数を他の処理と並行して実行する単位だよ。例えばgo work()と書くと、workの処理を新しいgoroutineで開始し、呼び出した側は完了を待たずに進めるんだ。
OSスレッドとは、どう違うの?
大量に作れば、その分だけ速い?
結果は、普通の戻り値で受け取れる?
go文で開始した関数の戻り値は、呼び出し元へ返されないよ。チャネルなどで結果を受け渡す仕組みを作る。共有データを扱う場合には同期も必要で、goroutineを使うだけでデータ競合がなくなるわけではないんだ。
mainが終わったら、残りの処理は待ってくれる?
main関数が戻るとプログラムは終了し、他のgoroutineの完了を自動では待たないよ。必要な処理が終わったことをチャネルなどで確認してから終了する設計にしよう。処理を始めることと、完了を待つことは別なんだ。
まとめ:ざっくりこれだけ覚えればOK!
「goroutine」って出てきたら「Goで、他の処理と並行して関数を動かす単位」と思えばだいたいOK!
📖 おまけ:英語の意味
「Goroutine」 = Goのルーチン
💬 プログラミング言語「Go」と、処理のひとまとまりを表す「routine(ルーチン)」を組み合わせた言葉だよ。