Vad är läsare-författarproblemet?

Problemet med "läsare-författare" är ett programmeringsdilemma som skapas när flera läsare och författare behöver tillgång till samma resurs. Om de alla tilläts åtkomst på en gång kan problem som överskrivningar, ofullständig information och andra problem uppstå. Därför kan programmerare begränsa åtkomsten till kontroll vilka bearbetningstrådar som ser resursen och när, med tanke på systemets och användarnas behov. Det finns flera sätt att ta itu med läsarförfattarens problem. En av de vanligaste lösningarna innebär användning av semaforer för att flagga status och kontrollåtkomst.

Ur ett perspektiv kunde valfritt antal läsare säkert få tillgång till en resurs eftersom de inte gör ändringar i innehållet. När en författare kommer in i ekvationen blir situationen mer komplicerad. Om en tråd skriver medan andra trådar läser kanske läsarna inte får korrekt information. De kunde bara få en del av förändringen, eller kan se den föråldrade informationen och tycker att den är korrekt.

Mer än en författare kan också skapa ett problem. Samtidiga ändringar av samma innehåll kan skriva över det och skapa andra fel. Under problem med läsare-författare måste programmerare besluta om läsare eller författare har prioritet och hur de ska hantera åtkomst. Läsare eller författare kan tilldelas prioritet, eller systemet kunde tilldela åtkomst vid första till kvarn. Denna tredje lösning kan förhindra långa väntningar, men kan komma med sina egna problem.

I en lösning där läsarna har prioritet antar systemet att alla läsare som ber om åtkomst bör tillåtas först när åtkomst blir tillgänglig. Detta innebär att alla författare som vill komma åt resursen kan behöva vänta. Omvänt kan systemet anta att eftersom författare måste göra förändringar som kan påverka läsarna, bör de prioriteras under läsarskrivarproblemet. När en läsare är klar med en resurCE, en författare kunde hoppa in för att göra en förändring. Detta gäller inte bara användaråtgärder som att försöka spara ett dokument, utan för interna processer inuti datorn som håller systemet igång.

Ett annat alternativ gör det möjligt för läsare-författarproblemet att balansera behoven hos båda parter, vilket tillåter varje bearbetningstrådåtkomst när den anländer. Detta hindrar författare från att göra förändringar som åsidosätter varandra eller förvirrar läsarna, utan att lämna läsarna som väntar eller tvingar författare att hålla medan läsarna slutar. Sådana prioriteringar kan byggas in i ett program eller minnesåtkomstkontroll i en dator. Användare kanske kan göra ändringar om de är bekväma med programmering och systemet tillåter det.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?