Diky za reakci. Je pravda, ze takovy model jsem nebral v uvahu (ikdyz ho znam). V konecnem dusledku mi mozna prijde slozitejsi na vyladeni nez implementovat tu asynchronni verzi a pritom neprinasi zadny benefit navic.
Samozrejme pokud neni omezenim pocet paralelne otevrenych socketu. Zkousel jsem udelat cca 1500 socket pripojeni na servery (z bezne klientske stanice) a zadneho zatizeni jsem si nevsimnul. Kazdopadne netvrdim, ze to je nejcistsi reseni... Marek 2008/8/2 superman <[EMAIL PROTECTED]> > > Ano, přehlédnul. Tento problém se řeší velmi často, a je na něj krásné > standardizované řešení. To řešení spočívá v tom, že se určí maximální > počet běžících threadů - řekněme třeba 50. Pak se vytvoří tzv. thread > pool, tedy objekt, který spustí 50 threadů a drží je v pozastaveném > stavu. Všechny potřebné úkoly se řadí do fronty operací, které pak > přebírá thread pool a přiřazuje jim jednotlivé thready. Tedy pokud je > potřebných operací méně, než max. počet threadů, některé thready spí a > zbylé vykonávají operace. Pokud je operací více, než threadů, pak > všechny thready vykonávají operace až do max. počtu, tedy v tomto > případě do 50 a zbylé čekají ve frontě. Jakmile jakákoli operace skončí, > volný thread vybere z fronty další operaci a začne jí vykonávat. > > Tímto dosáhnete max. rychlosti a vysokého výkonu. Za prvé se zbavíte > režie vytváření a rušení threadu - všech 50 threadů vytvoříte najednou a > stále existují v thread poolu. Za druhé - příliš velký počet threadů > naráz je neefektivní a režie operačního systémů při přepínání kontextu > obrovského množství threadů sežere značnou část výkonu. Takže při > rozumně zvoleném počtu threadů probíhají operace nejrychlejší možnou > rychlostí - vyšší, než kdyby bylo threadů méně, nebo více. Za třetí - > snažší synchronizace thread díky tomu, že je máte najednou pod kontrolou > v jednom objektu - synchronizační akce bývají výrazně zjednodušeny. > > Psal bych víc, ale pro základní představu to stačí. > > Miloslav Ponkrác > > > > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python >
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
