はじめてのRuby!並列処理Threadの使い方をやさしく解説!

プログラミングにおいて別々の処理を同時並行で実施するスレッド(Thread)処理はよく使われます。

スレッドを使うことで、いくつもの処理を平行して実施できるため、非常に便利です。

ここでは、「Rubyでスレッド(Thread)を使う方法が知りたい」といった方に向けて、スレッドの基本処理について解説していきます。


【基礎】そもそもThreadとは
【基礎】Threadの使い方
【基礎】Threadを終了する方法
【発展】Threadの停止と再会

Rubyのスレッドについてわかりやすく解説していますのでぜひ参考にしてください!

そもそもThreadとは

プログラムは通常処理を記述した順に実行されます。しかし、Aという処理とBという処理を同時に実行したい場合、複数のプログラムを動かさなければいけません。

しかし、スレッド(Thread)という処理を使えば、複数の処理を並行して実施することが可能です。

RubyでThreadを使用するためにはThreadクラスを使用します。

Threadの作成

次項ではそんなRubyのスレッド処理について詳しく見ていきましょう。

Threadの使い方

以下のサンプルではスレッドを1つ作成し、スレッド処理が終了すると同時にプログラムも終了します。

実行結果:

この処理ではまずThread.newでスレッドのオブジェクトを作成しています。

作成したスレッドのオブジェクトに対してjoinを指定することで、以降の処理はスレッドが終了するまで実行されません。

続いてスレッドが複数あるマルチスレッドを作成してみましょう。

実行結果:

このようにスレッドt1とt2が同時並行的に行われていることがわかりますね!

Threadの終了

スレッドの処理を終了するにはメインスレッドよりThread.killメソッドを使用します。

実行結果:

Threadの停止と再開

スレッドを途中で停止したい場合はThread.stopメソッドを使用することで停止できます。

停止したスレッドはThread.runメソッドを使用することで処理が再開されます。

以下のサンプルでは条件によってスレッド1が停止し、スレッド2が終了した時点でスレッド1が再開します。

実行結果:

まとめ

ここではRubyで同時並行で処理を実行するスレッド(Thread)について、以下の内容を解説しました。

  • そもそもThreadとは
  • Threadの使い方
  • Threadを終了する方法
  • Threadの停止と再会

Threadの処理は同時並行で別々の処理が実行できるため非常に便利です。

もし、Threadの使い方を忘れてしまったら、この記事を思い出してくださいね!

自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説