2012年8月2日木曜日

[python]multiprocessingとthreadingについて

threadingだとGIL問題があって遅くなる!っていう話をネット上でちらほら見かけるので
multiprocessingというものを使ってみた。
使い方はthreadingとほぼ互換なんだけども、pickle化できないといけない制約が付いてくる。
あともう一つ、プロセス間通信するのにManagerクラスを使ったりしたりしなかったり。

それにforkしたようなものなので、
メインプロセスがいて、そこにCTRL+ALT+DELETEで出てくるプロセス一覧に
multiprocessingで作ったプロセスが出てきて、その中にthreading処理が動いて・・・っていう
スコープになるし、単純に置換えすると逆に共有メモリ回りで慣れて無いと
ローカルでやればすぐ済む作業もプロセス間通信を使ってやらないといけないとか、色々めんどくさくなる。

もし使うなら、工場で一連の作業が円滑に回ってるんだけど依頼が多くて困る!
別の工場を作って仕事を振り分けたいなーって場合のときに有効な手段だとおもう。

0 件のコメント:

Androider