forkとプロセス

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

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

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

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

おわりに

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




投資に興味のない未経験者限定で、オンラインインタビューを受けていただける方を募集中!
ご応募の際に事前に投資意向調査アンケートにご回答いただきます。
投資に興味がない方限定で受け付けております。
※謝礼は10,000円になります(最大10名まで。投資に興味のある方からの募集は〆切りました)

ご協力いただける方はこちらから回答をお願いいたします(回答期限は2021年3月8日15時まで)


※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。