Jan12 Napsal:
-------------------------------------------------------
> Měljsem za to že se thready potkají a zřítí se mi
> program - k tomu ale nedošlo. Nechápu proč,
> zkoušel jsem to i s řetězcem a podobně. Oba dva
> thready běží - dle různých změn celkové hodnoty
> nebo výpisů řetězcových hodnot.
proc by mel? Prace s ciselnou promennou nebude problem, ta bude vetsinou atomicka. Problem muze byt pri praci se slozitejsimi typy, pak se ti muze stat, ze bude promenna obsahovat nesmyslne hodnoty, kdy cast se prepise jednim threadem a dojde k prepnuti kontextu driv, nez se ulozi zbytek. Zalezi taky na tom, jestli pracujes s thread-safe typem.
> 3) Tato sekce je použitelná pouze na jednu
> proměnou nebo více proměných
to je snad jedno - proste co je mezi Enter a Leave, tam muze jenom jeden thread. Co se uvnitr deje je jedno.
> 4) Měl jsem za to že pokud nevložím
> LeaveCriticalSection že zůstane proměná
> zablokovaná - tudíž že ji ostatní nemůžou
> používat, to se ale nestalo - Kde je co špatně?
nejspis pouzivas pokazde jiny objekt - ta CRITICAL_SECTION by afaik mela byt sdilena a pouzivana obema thready, jinak to neni stejna sekce, ale delas pokazde novou
Jan12 Napsal:
-------------------------------------------------------
> Měljsem za to že se thready potkají a zřítí se mi
> program - k tomu ale nedošlo. Nechápu proč,
> zkoušel jsem to i s řetězcem a podobně. Oba dva
> thready běží - dle různých změn celkové hodnoty
> nebo výpisů řetězcových hodnot.
proc by mel? Prace s ciselnou promennou nebude problem, ta bude vetsinou atomicka. Problem muze byt pri praci se slozitejsimi typy, pak se ti muze stat, ze bude promenna obsahovat nesmyslne hodnoty, kdy cast se prepise jednim threadem a dojde k prepnuti kontextu driv, nez se ulozi zbytek. Zalezi taky na tom, jestli pracujes s thread-safe typem.
> 3) Tato sekce je použitelná pouze na jednu
> proměnou nebo více proměných
to je snad jedno - proste co je mezi Enter a Leave, tam muze jenom jeden thread. Co se uvnitr deje je jedno.
> 4) Měl jsem za to že pokud nevložím
> LeaveCriticalSection že zůstane proměná
> zablokovaná - tudíž že ji ostatní nemůžou
> používat, to se ale nestalo - Kde je co špatně?
nejspis pouzivas pokazde jiny objekt - ta CRITICAL_SECTION by afaik mela byt sdilena a pouzivana obema thready, jinak to neni stejna sekce, ale delas pokazde novou
Citovat příspěvek