Martin Beránek wrote: > Zdravím, > > řeším následující problém: > > Je server který příjmá data ukládá je do adresáře jako soubory - pro > každé příchozí spojení je vytvořeno samostatné "klientské" vlákno. > > Dále v systému běží jedno "čistící vlákno", které promázává přijatá data. > > Podmínkou je, že čistící vlákno nesmí vykonávat svou činnost, pokud běží > nějaké klientské vlákno - a naopak - nesmí se spustit klientské vlákno, > dokud čisticí vykonává sou činnost. > > Jaký druh zámků je na toto vhodný?
Tohle je klasický problém nazývaný "čtenáři a písaři", řešení viz Google. Nicméně mi na tohle popisu nesedí, že tam nikde není zmínka o nějakém zpracovávajícím vlákně. Pokud zpracovává to čistící vlákno, je to zbytečně neefektivní, protože synchronizovat stačí nad jednotlivými soubory, ne nad celým adresářem. Stačí, aby zpracovávající vlákno nezačalo zpracovávat dřív, než zapisující vlákno dokončí zápis. Takže je možné mít i více zpracovávajících vláken, a ta mohou po zpracování soubory i smazat. Makub -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Supercomputing Center Brno Martin Kuba Institute of Computer Science email: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
