[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

threadとforkに関するgfxのブックマーク (3)

  • Rubyでforkを利用したマルチプロセスでコアを使い切りたい気持ち - Qiita

    Rubyで書かれたちょっと重たいバッチ処理があって速くする必要があったので、fork(2)とpipe(2)を使ったマルチプロセス化でコアを活かした並列処理に書き直した話します。 以下の記事に詳しく書いてあるので、TL;DRはそちらを見てな? Forking and IPC in Ruby, Part I Forking and IPC in Ruby, Part II なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会 Threadじゃいかんの? — GILについて 並行プログラミングとしてまず最初に思いつくのはマルチスレッド化ですが、RubyにおいてはGVL(Giant VM lock)があるためマルチコアを活かすことは難しいのです。 ネイティブスレッドを用いて実装されていますが、 現在の実装では Ruby VM は Giant VM lock (GVL) を有し

    Rubyでforkを利用したマルチプロセスでコアを使い切りたい気持ち - Qiita
  • Python の subprocess の preexec_fn の実装と fork のスレッドセーフティー問題

    methane @methane @riywo fork してから exec する前に実行して欲しい関数を指定します。具体的には os.setsid とか指定します。(最近の Python だと start_new_session キーワード引数指定できますが) 2013-03-24 02:11:06

    Python の subprocess の preexec_fn の実装と fork のスレッドセーフティー問題
  • GNU/Linuxにおけるプロセス

    GNU/Linuxでは、スケジュールの単位はプロセスである。スレッドというのは、ちょっと特殊なプロセスにすぎない。 Windowsでは、スケジュールの単位はスレッドである。プロセスというのは、スレッドを束ねる要素でしかない。たしかに、プロセスには優先度を設定できる。ただしこれは、スレッドの優先度が、スレッドに設定されている優先度とスレッドが属するプロセスに設定されている優先度から計算されるだけである。プロセスは実行の単位ではない。 プロセスを作るためのLinux Kernel APIとして、fork(), clone(), vfork()がある。Linux kernelでは、それぞれsys_fork(), sys_clone(), sys_vfork()として提供されている。また、その下にdo_fork()があって、実際の処理はこの関数がやっていたりする。ただし直接使うことはない。というの

  • 1