Skip to main content

Hvad er læsere-forfatterproblemet?

Problemet med læserne-forfatterne er et programmeringsdilemma oprettet, når flere læsere og forfattere har brug for adgang til den samme ressource.Hvis de alle fik adgang på én gang, kan der opstå problemer som overskrivninger, ufuldstændige oplysninger og andre problemer.Derfor kan programmerere begrænse adgangen til at kontrollere, hvilke behandlingstråde der ser ressourcen, og når man overvejer systemets og brugernes behov.Der er flere måder at tackle læsere-forfatterproblemet på.En af de mest almindelige løsninger involverer brugen af semaforer til at markere status og kontroladgang.

Fra et perspektiv kunne ethvert antal læsere sikkert få adgang til en ressource, fordi de ikke foretager ændringer i indholdet.Når en forfatter kommer ind i ligningen, bliver situationen mere kompliceret.Hvis en tråd skriver, mens andre tråde læser, får læserne muligvis ikke korrekte oplysninger.De kunne kun modtage en del af ændringen eller måske se de forældede oplysninger og synes, det er nøjagtige.

Mere end en forfatter kunne også skabe et problem.Samtidige ændringer til det samme indhold kan overskrive det og skabe andre fejl.I henhold til læserne-forfatterproblemet skal programmerere beslutte, om læsere eller forfattere har prioritet, og hvordan de skal håndtere adgang.Læsere eller forfattere kunne tildeles prioritet, eller systemet kunne tildele adgang efter først til mølle -basis.Denne tredje løsning kan forhindre lange ventetider, men kan komme med sine egne problemer.

I en løsning, hvor læserne har prioritet, antager systemet, at enhver læser, der beder om adgang, skal have tilladelse til først, når adgangen bliver tilgængelig.Dette betyder, at alle forfattere, der ønsker at få adgang til ressourcen, kan være nødt til at vente.Omvendt kan systemet antage, at fordi forfattere er nødt til at foretage ændringer, der kan påvirke læserne, skal de prioriteres under læser-forfatterproblemet.Når en læser er færdig med en ressource, kunne en forfatter hoppe ind for at foretage en ændring.Dette gælder ikke kun for brugerhandlinger som at prøve at gemme et dokument, men til interne processer inde i computeren, der holder systemet i gang.

En anden mulighed giver læser-forfatterproblemet mulighed for at afbalancere begge parters behov, hvilket giver hver behandling af behandlingstråd adgangNår det ankommer.Dette forhindrer forfattere i at foretage ændringer, der tilsidesætter hinanden eller forvirrer læserne, uden at lade læserne vente eller tvinge forfattere til at holde, mens læserne er færdige.Sådanne prioriteter kan indbygges i et softwareprogram eller hukommelsesadgangskontrol på en computer.Brugere kan muligvis foretage ændringer, hvis de er komfortable med programmering, og systemet tillader det.