やっほー
【Go】ゴルーチン入門!並列処理が簡単にできるーチン!

【Go】ゴルーチン入門!並列処理が簡単にできるーチン!

Go言語には「ゴルーチン」という、かっこいい名前の機能があります。

そもそもGoは並列処理が得意と言われていますが、その並列処理を簡単にしてくれるのがゴルーチンです。

ってことで今回は、Go言語のゴルーチンに入門してみました

今回のソースコード

まずはゴルーチンを使用せずに実行してみる

処理を1秒間停めるsleep関数を3回呼んでいるだけです。

 

ログを見た感じ、ちゃんと3秒かかっていますね。

 

ゴルーチンを使用して実行してみる

ゴルーチンを使用するには、関数呼び出し時に「go」を指定するだけです。

 

sleep関数を、ゴルーチンを使用して呼び出します。

 

実行すると、あら不思議。sleep関数を呼んだ形跡が全くない。。

ゴルーチンの注意点

ゴルーチンを使用した場合、main関数の処理が終われば自動的にすべての処理が終了します

今回の例だと、ゴルーチンを使用したことで、sleep関数はmain関数の管理下ではなくなったイメージになります

これはチャネルを使うなどして回避できますが、今回はゴルーチンをいい感じに使ってみたいだけなので、一旦main関数の最後にsleep関数を仕込んでみます

ゴルーチンを使用して再度実行してみる

多めですが、一旦4秒スリープさせました。

 

main関数で多めに4秒停めているので全体は4秒かかっていますが、sleep関数はゴルーチンを使用したので、すべて51秒のタイミングで並列実行されています。
つまり、ゴルーチンを使用したことで並列処理が行われていることが確認できたわけです

おすすめ本

これおすすめやで。

まとめ

ゴルーチンを使ったのは、ゴルーチンっていう名前がカッコよかったっていうだけです。

で、使ってみて分かったんですが、これ意外と便利ですね。

そもそも前処理待たなくてよくね?」みたいなケースってぼちぼちありますからね。

次はチャネルとか使ってみようかなと思いまする。

【Go】ゴルーチン入門!並列処理が簡単にできるーチン!
フォローしてもらえると泣いて喜びます