Python マルチプロセッシングを学習しようとしています。
http://docs.python.org/2/library/multiprocessing.html「関連する個々のプロセス ID を表示するには、ここに拡張された例を示します:」の例から
from multiprocessing import Process
import os
def info(title):
print title
print 'module name:', __name__
if hasattr(os, 'getppid'): # only available on Unix
print 'parent process:', os.getppid()
print 'process id:', os.getpid()
def f(name):
info('function f')
print 'hello', name
if __name__ == '__main__':
info('main line')
p = Process(target=f, args=('bob',))
p.start()
p.join()
私は正確に何を見ているのですか?def f(name): は info('main line') が終了した後に呼び出されることがわかりますが、この同期呼び出しはとにかくデフォルトになります。同じプロセス info('main line') が def f(name): の親 PID であることがわかりますが、それについて「マルチプロセッシング」とは何かわかりません。
また、join() では「join() メソッドが呼び出されたプロセスが終了するまで、呼び出し元のスレッドをブロックします」。呼び出しスレッドがどうなるかはわかりません。この例では、join() は何をブロックしているのでしょうか?