[Python] Semantica del modulo multiprocessing.
Manlio Perillo
manlio.perillo a gmail.com
Lun 30 Dic 2013 16:53:43 CET
On 30/12/2013 16:37, Walter Valenti wrote:
> Mettiamo che abbia una situazione del genere:
>
> ###
>
> from multiprocessing import Process, Manager
>
> class T1(object):
> def __init__(self):
> print "init..."
> self.run()
> def run(self):
> print "run",str(os.getpid())
>
Sarņ io che magari non comprendo il "grande disegno", ma fare:
def t1():
print "run", os.getpid()
usando una semplice funzione, non andava bene? :)
>
> class T2(object):
> p = Process(target=T1)
> p.start()
> p.join()
>
>
> T2()
> ###
> Come faccio in questo caso a condividere una variabile tra il processo padre e i figlio?
Memoria condivisa, come spiegato nella documentazione.
> Se uso il Manager ho il problema che le due classi hanno ognuna il proprio namespace.
>
Certo, č il motivo per cui stai usando i processi, no?
Altrimenti usa i thread.
>
> Ho provato ad usare BaseManager, per crearmi il Manager ad Hoc.
> In questo caso ha funzionato, ma la cosa č bloccante. Se il processo figlio esegue un loop,
> il padre rimane in attesa bloccato.
>
Come lo stai usando?
Ciao Manlio
Maggiori informazioni sulla lista
Python