プロセスとスレッド 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だと、ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供
している。