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についてはあまり実感として理解していません....
調べていくうちに参考になりそうなサイトが見つかったので、実際にサイトを見ながら手を動かしていって理解を深めていこうかと思います.
参考資料↓
*1:ちなみに並行処理とは同時にいくつかの質の異なることを扱うことであり、並列処理とは同時にいくつかの質の同じことを行うことらしいです.