Sto sottoclassi la classe Process in una classe che chiamo EdgeRenderer. Voglio usare multiprocessing.Pool
, ad eccezione di processi normali, voglio che siano istanze del mio EdgeRenderer. Possibile? Come?Multiprocessing di Python: Pool di processi personalizzati
risposta
Da Jesse Noller:
Non è attualmente supportato nel API, ma non sarebbe una cattiva Inoltre. Guarderò aggiungendolo al python2.7/2.6.3 3.1 questa settimana
Non vedo alcun hook per esso nell'API. Potresti riuscire a farla franca replicando la funzionalità desiderata utilizzando l'argomento initializer
e initargs
. In alternativa, si può costruire la funzionalità in oggetto chiamabile che si utilizza per la mappatura:
class EdgeRenderTask(object):
def op1(self,*args):
...
def op2(self,*args):
...
p = Pool(processes = 10)
e = EdgeRenderTask()
p.apply_async(e.op1,arg_list)
p.map(e.op2,arg_list)
Non è possibile passare una classe come argomento a 'p.map', si otterrà l'errore pickle. L'unico modo che ho trovato intorno a questo è quello di implementare una sorta di 'pool.map' personalizzata ... .... impostando e alimentando i processi da solo. Sfortunatamente prenderà più linee. – catwalker333
Questo sembra funzionare:
import multiprocessing as mp
ctx = mp.get_context() # get the default context
class MyProcess(ctx.Process):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
print("Hi, I'm custom a process")
ctx.Process = MyProcess # override the context's Process
def worker(x):
print(x**2)
p = ctx.Pool(4)
nums = range(10)
p.map(worker, nums)
- 1. python multiprocessing pool terminate
- 2. Multiprocessing di Python per processi paralleli
- 3. python Pool con worker Processi
- 4. Multiprocessing: più processi di cpu.count
- 5. ripetizioni del pool di multiprocessing in python
- 6. Multiprocessing di Python che porta a molti processi di zombi
- 7. Processo di multiprocessing Python numero
- 8. Il pool di multiprocessing Python si blocca al join?
- 9. Utilizzo del pool di processori multiprocessing
- 10. Locks multiprocessing Python
- 11. Tecniche di debug di multiprocessing
- 12. Multiprocessing di Python con pathos
- 13. Concorrenza di multiprocessing di Python utilizzando Manager, Pool e un elenco condiviso non funzionante
- 14. Process persistenti Post Python Pool
- 15. Come ottenere la quantità di "lavoro" che deve essere fatta da un pool di multiprocessing Python?
- 16. Python multiprocessing errore di uscita
- 17. multiprocessing di python: nessun ritorno in diminuzione?
- 18. Come posso elaborare un tarfile con un pool di multiprocessing Python?
- 19. Multiprocessing di Python e contatore condiviso
- 20. Gunicorn memoria condivisa tra i processi di multiprocessing e lavoratori
- 21. dizionario python di code inter processi
- 22. utilizzando la lista con multiprocessing di python
- 23. variabili Globals e Python multiprocessing
- 24. Python Qual è la differenza tra un pool di processi di lavoro e l'esecuzione di più processi?
- 25. eccezione Finding in python multiprocessing
- 26. Processo o pool di multiprocessing di Python per quello che sto facendo?
- 27. Multiprocessing di Python: come limitare il numero di processi in attesa?
- 28. Multiprocessing di Python nel pallone
- 29. Utilizzo di defaultdict con multiprocessing?
- 30. python multiprocessing
Si sta tentando di scrivere il codice per utilizzare più threading in questo modo ? –
Elaborazione multipla. –