White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

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