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<[email protected]>:
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


_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem