On Thu, May 21 2015, Remo The Last wrote: > ciao lista, buongiorno.Sto appresso ad un problema semplice ma che non > riesco a risolvere.Nell'esempio che segue la def f, con il suo while, > mi deve inviare sempre i dati aggiornati (q.put) e il q.get nel main > deve ricevere sempre i dati della def. Il problema è che la def f > viene eseguita una sola volta e anche se ho inserito un ciclo while i > dati vengono inviati e ricevuti solo una volta mentre a me serve che i > dati vengano inviati e ricevuti sempre, in quanto la def dovrà > aggiornare i dati da inviare. > Anche se modifico il listato e uso una pipe, la def viene eseguita una > sola volta e i dati aggiornati vengono ricevuti una sola volta > Come posso fare? > Ciao e grazie.py.Re > > > > Listato esempio: > from multiprocessing import Process, Queue > def f(q): while True: > q.put([42, None, 'hello']) conn.close() > > if __name__ == '__main__': > q = Queue() > p = Process(target=f, args=(q,)) > p.start() > print q.get() > p.join()
E se raddoppi la `get()`, quante volte viene ricevi i dati? from multiprocessing import Process, Queue def f(q): while True: q.put([42, None, 'hello']) if __name__ == '__main__': q = Queue() p = Process(target=f, args=(q,)) p.start() print q.get() print q.get() # <-- p.join() ciao m. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python