2009/12/17 Ernesto <e.pica...@unical.it>: > Ciao a tutti, > > tempo fa ho iniziato una discussione sul multi-threading da cui è > emerso che per lanciare più threads con python per aumentare le > prestazioni è più conveniente utilizzare la libreria multiprocessing. > Tuttavia no so se la mia scelta è sensata o meno. Ho a disposizione > più di un processore multi-core. > Il mio script effettua un loop su una lista di file ed esegue per ogni > iterazione una specifica funzione su ogni file, per esempio: > > miaLista=[file1,file2,file3] > for file in miaLista: > miaFunzione(file) > > Vorrei poter lanciare la mia funzione sulla lista sfruttando più > processi. Se scelgo di avviare 2 processi, i primi due file della > lista vengono analizzati. Come faccio a dire allo script di continuare > ad eseguire la funzione sul file successivo una volta che uno dei > primi due processi è terminato? puoi usare il pool del modulo multiprocessing. http://docs.python.org/library/multiprocessing.html#module-multiprocessing.pool
oppure in alternativa un lock (però mi sa che cosi ti vai ad impantanare più di quanto ti serve). Ciao Fabrizio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python