Ruby/Rubyの基礎知識

Rubyにおける並行処理とスレッド・プロセスの機能(2ページ目)

Rubyがどのようにスレッド・プロセスを扱っているか解説を行います。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

forkとプロセス

forkはプロセスを複製します。先に「スレッドはひとつのプロセス上で複数の処理を実行させる」際の話だと書きましたが、プロセスはスレッドよりも大きな処理の単位です。

早速forkを使ってみます。Thread.new do...end の代わりにfork do...endとしてブロックをforkに渡してやるコードは次のように書けます。

このときプロセスを監視していると、ruby fork.rbというプロセスが10個立ち上がっているのがわかります。

スレッドの場合は以下のようにプロセスは1個だけです。スレッドは同じプロセス内で走るため、メモリ空間を共有しておりデータが簡単に共有できます。

おわりに

以上でThreadとforkの基本的な解説は終了です。並列・平行プログラミングはマルチコア化の進んだ現在重要なテーマの一つであると言えるため、後日本記事に追加するか、別記事としてまとめる形で引き続き扱っていきたいと思います。

【編集部おすすめの購入サイト】
楽天市場で Ruby 関連の書籍を見るAmazon で Ruby 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます