multiprocessing
細かいことは良く理解してないけど、CPythonの場合threadingとか使ってもGILのおかげで同時に1スレッドしか回らないので、複数コアで回したりとかしたいときにはプロセスを複数立ててデータを共有したりする。(・・という認識でいいのか?)
それはともかくmultiprocessingでプロセス回した時にはその分だけプロセスが立つ。
from multiprocessing import Process, active_children def f(name): i = 0 while i < 100000: print 'hello,', name , i i += 1 if __name__ == '__main__': lp = [] for i in range(0,10): p = Process(target = f, args = (i,)) p.start() for i in active_children(): p.join() ~
- python.orgのmultiprocessing解説
- http://docs.python.org/library/multiprocessing.html