[Python] thread strano comportamento
Balan Victor
balan.victor0 a gmail.com
Dom 18 Maggio 2014 11:18:09 CEST
Il giorno 18 maggio 2014 07:14, Marco De Paoli <depaolim a gmail.com> ha
scritto:
>
> 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...)
dovrebbe servire per evitare che girino contemporaneamente più di N task
> >
> 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?
perché nel esempio ho impostato il numero max di task che possono girare
sia 1 e il task ha uno sleep di un secondo. Inoltre i task 32 e 3 io non li
vedo mai partire, neanche dopo qualche secondo.
> > 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?
>
> uso il modulo logging
--
Balan Victor
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140518/8c5d11be/attachment.html>
Maggiori informazioni sulla lista
Python