[Python] thread strano comportamento
Marco De Paoli
depaolim a gmail.com
Dom 18 Maggio 2014 07:14:03 CEST
Il 16 maggio 2014 20:06, Balan Victor <balan.victor0 a 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
Maggiori informazioni sulla lista
Python