[Python-ml-jp 3742] Re: python での co-operative multi thread programming
kenji
kenji @ nasuinfo.or.jp
2006年 10月 12日 (木) 12:01:10 JST
小林@那須です。纏めレスで失礼します。
まつもとさん>「もっとpre-emptiveにしろ」という要求の方が声が大きいようです。
この要求の意味を噛み砕いてもらえますでしょうか。
現状でも thread, threading モジュールは pre-emptive です。(優先順位を
付けられないのに pre-emptive にする意味が殆ど無いとも思いますが。)
要求が「膨大な python libraly を thread safe にすべき」の意味なら理解
もできます。でも膨大すぎます。書き直しと そのテスト工数を考えたら無理
な要求だと思います。
安達さん>ってことは、MultiCPUの環境でPythonのスレッドをたくさん作ってもCPUは1個
>しか使わないんじゃないのか、と思って実験してみたらやっぱりそうでした。
>がっかり・・・
Windows/Linux などの大きな OS の下で動く二つの thread に同時に異なる
CPU を割り振られる確率は小さいと思います。できたら、どんな風に確かめ
たか教えていただけますでしょうか。
また将来 100 個の CPU を一つの CPU で扱えるようになったときは、現状の
process/thread とは異なる新しい並列処理モデルを導入すべきだと考えま
す。ユーザーに thread safe を保証させる必要のない新しい並列処理モデル
を作り上げるべきだと主張します。
ささださん> ちなみに、preemptive なスレッドが必要なのは、ネットワークプログラミン
>グなど、本質的に並行なものをスクリプト言語において簡単に扱いたいから、だ
>と思っています。
Multi thread であれは「本質的に並行なものを」簡潔に書けます。
Pre-emptive である必要はありません。逆に pre-emptive であることにより、
thread safe/同期の保証など嫌らしい面が多く入り込みます。ささださんが
pre-emptive に拘る理由を教えていただけますでしょうか。
================ kVerifierLab =====================
小林憲次
http://www.nasuinfo.or.jp/FreeSpace/kenji/index.htm
===================================================
Python-ml-jp メーリングリストの案内