【ごるーちん】
Goroutine とは?
公開:
💡 一人一人は身軽な小さな働き手を、大量に走らせられる並行処理のしくみ
Go言語の軽量な並行実行単位。OSスレッドより低コストで大量に生成できる。
📌 このページのポイント
Goroutineって名前、初めて聞いたの。何のこと?
スレッドと何が違うの?
OSのスレッドは1つ作るだけでも数MBのメモリを使うことがあるけど、Goroutineは数KB程度ととても軽量なんだよ。だから数万から数百万個も同時に立ち上げることができるんだ。
そんなにたくさん作って、コンピュータは大丈夫なの?
使うときは難しいプログラムを書かないといけないの?
そんなことないよ。関数の前に"go"というキーワードを付けるだけで、その処理を新しいGoroutineとして並行に実行できるんだ。とてもシンプルに書けるのがGoの人気の理由の一つだね。
たくさん動かした処理同士で情報をやり取りしたいときはどうするの?
Goには「チャネル(channel)」という仕組みがあって、Goroutine同士が安全にデータをやり取りできるようになっているんだよ。「メモリを共有して通信するな、通信することでメモリを共有せよ」というGoの設計思想を体現した仕組みなんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Goroutine」って出てきたら「Goの軽量な並行実行の単位」と思えればだいたいOK!
📖 おまけ:英語の意味
「Goroutine」 = Goのルーチン
💬 プログラミング言語「Go」と、処理のひとまとまりを表す「routine(ルーチン)」を組み合わせた言葉だよ。