はじめての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の使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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