Skip to main content

Jaký je problém čtenářů-spisovatelů?

Problém čtenářů je dilema programování vytvořené, když více čtenářů a spisovatelů potřebuje přístup ke stejnému zdroji.Pokud by jim byl povolen přístup najednou, mohou nastat problémy, jako jsou přepisování, neúplné informace a další problémy.Programátoři proto mohou omezit přístup ke kontrole, která vlákna zpracování vidí zdroj a kdy s ohledem na potřeby systému a uživatelů.Existuje několik způsobů, jak řešit problém čtenářů-spisovatele.Jedním z nejběžnějších řešení zahrnuje použití semaforů k označení stavu a řízení stavu.Jakmile spisovatel vstoupí do rovnice, situace se stává komplikovanější.Pokud vlákno píše při čtení jiných vláken, čtenáři nemusí získat správné informace.Mohli by obdržet pouze část změny, nebo by mohli vidět zastaralé informace a myslet si, že jsou přesné.

„Problém by také mohl vytvořit více než jeden spisovatel.Současné změny stejného obsahu by jej mohly přepsat a vytvořit další chyby.V rámci problému čtenářů-psacíci se musí programátoři rozhodnout, zda čtenáři nebo spisovatelé mají prioritu a jak zvládnout přístup.Čtenáři nebo spisovatelům by mohli být přiděleni priorita, nebo systém by mohl přiřadit přístup na základě prvního příchodu, nejprve sloužit.Toto třetí řešení může zabránit dlouhým čekání, ale mohlo by přijít s vlastními problémy.To znamená, že všichni spisovatelé, kteří chtějí přístup ke zdroji, by mohli potřebovat čekat.Naopak může systém předpokládat, že protože spisovatelé musí provádět změny, které by mohly ovlivnit čtenáře, měly by být v rámci problému čtenářů upřednostňovány.Když je čtenář hotový se zdrojem, mohl by spisovatel skočit, aby provedl změnu.To platí nejen pro akce uživatele, jako je pokus o uložení dokumentu, ale pro interní procesy uvnitř počítače, které udržují systém v chodu.jak to dorazí.To brání spisovatelům v provádění změn, které se navzájem potlačují nebo zaměňují čtenáře, aniž by čtenáři nechali čekat, nebo nutit spisovatele, aby drželi, zatímco čtenáři skončí.Takové priority mohou být zabudovány do softwarového programu nebo ovládání přístupu do paměti v počítači.Uživatelé mohou být schopni provést změny, pokud jsou pohodlné s programováním a systém to umožňuje.