[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