[python] vlakna,cpu

Hynek Fabian hynek.fabian na firma.seznam.cz
Čtvrtek Listopad 18 17:06:12 CET 2010


Interpret pythonu upouziva jeden globalni zamek pro pristup ke vsem promennym.
AFAIK vlakna ma v pythonu smysl pouzivat jedine pro kod z externich knihoven 
nebo pri (ne)cekani na blokujici operace.
Na vytizeni vice jader samotnym pythonem je potreba odforkovat cele instance 
interpretru. 

vepro (Thursday 18 November 2010 16:31:03):
> Pratele,
> Napsal jsem si aplikaci, ktera vyuziva vlakna v pythonu (modul
> threading). Muzu libovolne volit od jednoho vlakna az po X vlaken. Co se
> deje je, ze pokud spustim kod pouze na jednom vlakne je uloha dokoncena
> o dost rychleji, nez pokud ji pustim na vice vlaknech. Tusim, ze nejaky
> cas zabere "rezie" ,ale v tomto bych to nehledal. Procedury v
> jednotlivych vlaknech jsou temer nezavisle (pouze jeden zamek u
> "sdilene" promenne). Co je mi divne a myslim, ze v tom je zakopan pes,
> ze vyuziti procesoru je zhruba stejne (100%) pro ulohu bezici v jednom,
> tak i ve vice vlaknech. Vypada to tak, ze vice vlaken vyuziva pouze
> jedno jadro procesoru (onech 100%), tak jako jednovlaknovy proces. Je
> tedy nutne nejak pythonu "rici", ze ma vyuzivat vice jader pro vlakna?
> Dekuji za pripadnou radu
> Petr
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python


Další informace o konferenci Python