Il 16 maggio 2014 20:06, Balan Victor <balan.vict...@gmail.com> ha scritto: > Ho necessità di fare quando segue: > > estrarre in continuazione una lista di comandi e lanciare al massino N > comandi alla volta. Per fare questo pensavo di usare il modulo threading e > ho scritto un codice simile a quello che trovate a questo indirizzo: > http://pastebin.com/YZxa3VG8
premetto che gli ho dato solo un occhiata e comunque mi manca un po' contesto (per dirne una, non so a cosa serve il semaphore...) > > Se ora faccio partire il tutto mi trovo con un output simile a questo: > > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 32 > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 3 > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 52 > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 43 > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 27 > DEBUG 4552 task 52 2014-05-16 20:00:20,345: task 52 starting ... > > io dichiaro una coda di dimensione 1. Mi aspetto che quando faccio todoQ.put > questo resti in attesa finché nella coda non si libera un posto invece non > succede cosi. come lo verifichi che non succede così? voglio dire: potrebbe essere che i fetch avvengano in rapida successione per cui effettivamente in ogni momento la coda è (effettivamente) lunga al più 1? > Inoltre dal log sembra che scarichi i task nel seguente ordine > 32, 3, 52, 43, 27 e cosi via. Mi aspetto che il primo task sia 32, invece è > 52. uhm, chi è precisamente che stampa quelle righe di log? potrebbe essere che il log non è nello stesso ordine del fetch? ciao, Marco _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python