Sto cercando di imparare il multiprocessing di Python.Esempio di documentazione di multiprocessing di Python
http://docs.python.org/2/library/multiprocessing.html dall'esempio di "Per mostrare gli ID di processo individuale coinvolti, ecco un esempio esteso:"
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()
Che cosa sto guardando? Vedo che def f (nome): viene chiamato dopo l'informazione ('linea principale') è finito, ma questa chiamata sincrona sarebbe comunque predefinita. Vedo che le stesse informazioni sul processo ('linea principale') sono il PID genitore di def f (nome): ma non sono sicuro di cosa sia il 'multiprocessing' a riguardo.
Inoltre, con join() "Blocca il thread chiamante fino a quando il processo il cui metodo join() viene chiamato termina". Non sono chiaro su quale sarebbe il thread chiamante. In questo esempio cosa sarebbe join() da bloccare?