"讀寫器問題"是當多個讀寫器需要訪問同一個資源時產生的一個編程難題,如果同時允許它們訪問,可能會出現覆蓋、信息不完整等問題。因此,考慮到系統和用戶的需要,程序員可以限制訪問以控制哪些處理線程看到資源以及何時看到...
"讀寫器問題"是當多個讀寫器需要訪問同一個資源時產生的一個編程難題,如果同時允許它們訪問,可能會出現覆蓋、信息不完整等問題。因此,考慮到系統和用戶的需要,程序員可以限制訪問以控制哪些處理線程看到資源以及何時看到資源。有幾種方法可以解決讀寫器問題。最常見的解決方案之一是使用信號量來標記狀態和控制訪問

從一個角度看,任何數量的讀者都可以安全地訪問一個資源,因為他們不會對內容。一旦作者輸入等式,情況就變得更加復雜。如果一個線程在寫,而其他線程在讀,那么讀者可能得不到正確的信息。他們可能只收到部分更改,或者可能看到過時的信息并認為它是準確的多個編寫器也可能會產生問題。對同一內容的同時更改可能會覆蓋它并產生其他錯誤。在讀寫器問題下,程序員必須決定讀寫器是否具有優先級,以及如何處理訪問。可以為讀寫器分配優先級,或者系統可以在先到先服務的基礎上分配訪問權限。第三種解決方案可以避免長時間等待,但也可能帶來自身的問題在讀卡器具有優先權的解決方案中,系統假定當訪問可用時,任何請求訪問的讀卡器都應首先被允許。這意味著任何想要訪問資源的寫入程序都可能需要等待。相反,系統可能會假設,由于寫入程序需要進行可能會影響讀卡器的更改,因此在讀寫器問題下應給予優先權。當讀卡器處理完資源時,編寫器可以跳入進行更改。這不僅適用于用戶操作(如試圖保存文檔),還適用于計算機內部保持系統運行的內部進程另一個選項允許讀寫器問題平衡雙方的需求,允許每個處理線程在到達時進行訪問。這可以防止寫入程序在不讓讀卡器等待的情況下進行覆蓋彼此或混淆讀卡器的更改,或者強迫寫作者在讀寫結束時等待。這樣的優先級可以內置在軟件程序或計算機的內存訪問控制中。如果用戶對編程感到滿意并且系統允許的話,他們可以進行更改。