Skip to main content

독자 작가 문제는 무엇입니까?

독자 작가 문제는 여러 독자와 작가가 동일한 자원에 액세스 할 필요가있을 때 생성 된 프로그래밍 딜레마입니다.모두 한 번에 액세스 할 수있는 경우, 덮어 쓰기, 불완전한 정보 및 기타 문제와 같은 문제가 발생할 수 있습니다.따라서 프로그래머는 시스템 및 사용자의 요구를 고려할 때 리소스를 볼 수있는 처리 스레드 제어에 대한 액세스를 제한 할 수 있습니다.독자 작가 문제를 해결하는 방법에는 여러 가지가 있습니다.가장 일반적인 솔루션 중 하나는 세마포어를 사용하여 상태 및 제어 액세스를 표시하는 것입니다.작가가 방정식에 들어가면 상황이 더 복잡해집니다.다른 스레드가 읽는 동안 스레드가 쓰는 경우 독자는 올바른 정보를 얻지 못할 수 있습니다.그들은 변화의 일부만받을 수 있거나 구식 정보를보고 그것이 정확하다고 생각할 수도 있습니다. 둘 이상의 작가도 문제를 일으킬 수 있습니다.동일한 컨텐츠의 동시 변경으로 인해이를 덮어 쓰고 다른 오류가 발생할 수 있습니다.독자 작가 문제에 따라 프로그래머는 독자 나 작가가 우선 순위를 가지고 있는지, 그리고 액세스를 처리하는 방법을 결정해야합니다.독자 나 작가는 우선 순위를 지정할 수 있거나 시스템은 첫 번째로 제공되는 첫 번째로 액세스를 할당 할 수 있습니다.이 세 번째 솔루션은 긴 대기를 방지 할 수 있지만 자체의 문제가 발생할 수 있습니다.

독자가 우선 순위가있는 솔루션에서 시스템은 액세스를 요청하는 모든 독자가 액세스 할 수있게되면 먼저 허용되어야한다고 가정합니다.이것은 자원에 액세스하려는 작가가 기다려야 할 수 있음을 의미합니다.반대로,이 시스템은 작가가 독자에게 영향을 줄 수있는 변화를해야하기 때문에 독자 작가 문제에 따라 우선 순위를 부여해야한다고 가정 할 수 있습니다.독자가 자원으로 끝나면 작가가 변화를 위해 뛰어들 수 있습니다.이는 문서를 저장하려는 것과 같은 사용자 조치뿐만 아니라 시스템을 실행하는 컴퓨터 내부 프로세스에 적용됩니다. 다른 옵션은 독자 작성기 문제가 양 당사자의 요구의 균형을 맞추어 각 처리 스레드 액세스를 허용합니다.도착하면.이를 통해 작가는 독자가 기다리거나 독자가 끝나는 동안 작가가 유지하도록 강요하지 않고 서로를 무시하거나 독자를 혼란스럽게하는 변경을 방해하지 않습니다.이러한 우선 순위는 컴퓨터의 소프트웨어 프로그램 또는 메모리 액세스 제어에 내장 될 수 있습니다.사용자가 프로그래밍에 편안하고 시스템을 통해 변경할 수 있습니다.