Nijak :( Pythin pouziva GIL, neboli Global Interpreter Lock. Kvuli komplikacim se zamykanim vnitrnich struktur Pythonu je to udelane tak, ze se vlakna stridaji a nebezi paralelne. Je to znamy problem Pythonu, ale nikdo ho zatim nevyresil.
Zkus se mrknout na modul processing, ktery misto vlaken pouziva procesy ale jinak je jeho pouziti skoro stejne jako u threadingu, samozrejme pak neni (jednoduchy) pristup ke sdilenym datum. Tusim, ze modul procesisng do jiste miry obchazi GIL, ale ted s nejsem na 100% jisty a nemam pristup k PC, tak si to radsi dohledej. Jirka On 18/11/2010, vepro <[email protected]> wrote: > 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 > [email protected] > http://www.py.cz/mailman/listinfo/python > _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
