Capr1の日々

とあるゲーム好きの情報系大学生の日々を淡々と綴っていくぞい

Golangのgorutineとchannelについて

Go言語の醍醐味であるgoroutineやchannelについて、自分なりの理解の確認のために書いていこうと思う.

 

goroutineについて

goroutineとは「Goのランタイムに管理される軽量なスレッド」である.

go f(x , y)

みたいに関数の前にgoキーワードをつけて呼び出せば簡単にgoroutineを作れる.

要するにgoroutineとは「並行に動作している関数」のことでしょう.

Go言語の特徴として挙げられる機能の1つに、「*1並行処理を書くのが簡単」というものは恐らくここから来ている.

 

channelについて 

channelとは「goroutineとgoroutineの間でデータの受け渡しをするGo特有のデータ構造」...らしいです.

すいません、正直channelについてはあまり実感として理解していません....

調べていくうちに参考になりそうなサイトが見つかったので、実際にサイトを見ながら手を動かしていって理解を深めていこうかと思います.

 

参考資料↓

www.slideshare.net

 

qiita.com

qiita.com

qiita.com

 

*1:ちなみに並行処理とは同時にいくつかの質の異なることを扱うことであり、並列処理とは同時にいくつかの質の同じことを行うことらしいです.