ゆるふわまなび日記

情弱がゆるふわな感じに勉強をしていくブログです。

プロセスとスレッド Linux&Ruby

linuxのはなし

プロセスとスレッド - プロセスはプログラムのインスタンス - 1プロセスで同時に動くのは1プロセス - スレッドはプロセスを細かくした実行単位 - プロセスの中で平行に動かしたいものをスレッドという単位で分ける

それだと効率が悪いので Kernelから見たら、 - 1プログラムは、1プロセスとして扱う - 1プロセスの中でスレッドが複数あったら、それらをライトウェイトプロセスとして扱い、プロセス同様に処理する。

Rubyのはなし

Thread.new // スレッド -> Rubyのprocessは1# Ruby のスレッドスケジューリングはネイティブスレッドのそれを利用  (ruby-2.1.0)
Process.fork // プロセス -> Rubyのprocessは3

さらにRubyだと、ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供している。

参考