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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a