[python] vlakna,cpu

vepro p.zlamal na gmail.com
Čtvrtek Listopad 18 17:25:01 CET 2010


Dekuji vsem za radu. Zkusim se kouknout na ten processing.
Petr

On 11/18/2010 05:06 PM, Petr Messner wrote:
> Ahoj,
>
> může za to věc zvaná Global Interpreter Lock (GIL). V dynamickém
> jazyce jako je Python je totiž trochu problém korektně pracovat ve
> více vláknech, proto to autoři Pythonu vyřešili tímto zámkem (mutexem)
> - v jednom okamžiku běží Pythonový kód pouze v jednom vlákně. Přesto
> program může být vícevláknový a má to smysl třeba při práci se sítí,
> databázemi - GIL je v patřičných okamžicích uvolňován a je požadován
> až při předávání dat zpět do Pythonu.
>
> Lze to obejít spuštěním programu ve více procesech. Pokud je potřeba,
> aby procesy mezi sebou komunikovaly, lze to řešit, i když to není tak
> jednoduché jako řešit to mezi vlákny. Viz modul multiprocessing,
> zmiňovaný ostatními. Třeba u webového nebo aplikačního serveru nemusí
> být důležité, aby mezi sebou jednotlivé procesy vůbec komunikovaly,
> pak je řešení triviální (spustit více procesů).
>
> Petr Messner
>
> 2010/11/18 vepro<p.zlamal na gmail.com>:
>    
>> 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
>>
>>      
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>    



Další informace o konferenci Python