Skip to main content

Độc giả-viết-vấn đề là gì?

Vấn đề của độc giả-viết là một vấn đề nan giải lập trình được tạo ra khi nhiều độc giả và nhà văn cần truy cập vào cùng một tài nguyên.Nếu tất cả chúng được phép truy cập cùng một lúc, các vấn đề như ghi đè, thông tin không đầy đủ và các vấn đề khác có thể phát sinh.Do đó, các lập trình viên có thể hạn chế quyền truy cập vào kiểm soát mà các luồng xử lý xem tài nguyên và khi nào, xem xét nhu cầu của hệ thống và người dùng.Có một số cách để giải quyết vấn đề độc giả-viết.Một trong những giải pháp phổ biến nhất liên quan đến việc sử dụng các semaphores để gắn cờ trạng thái và quyền truy cập kiểm soát. Từ một góc độ, bất kỳ số lượng độc giả nào cũng có thể truy cập một cách an toàn một tài nguyên vì chúng không thay đổi nội dung.Một khi một nhà văn bước vào phương trình, tình huống trở nên phức tạp hơn.Nếu một chủ đề đang viết trong khi các chủ đề khác đang đọc, độc giả có thể không nhận được thông tin chính xác.Họ chỉ có thể nhận được một phần của thay đổi, hoặc có thể thấy thông tin lỗi thời và nghĩ rằng nó chính xác.

Nhiều hơn một nhà văn cũng có thể tạo ra một vấn đề.Thay đổi đồng thời với cùng một nội dung có thể ghi đè lên nó và tạo các lỗi khác.Theo vấn đề của độc giả-viết, các lập trình viên phải quyết định xem độc giả hoặc nhà văn có ưu tiên và cách xử lý quyền truy cập.Độc giả hoặc nhà văn có thể được chỉ định ưu tiên, hoặc hệ thống có thể gán quyền truy cập trên cơ sở phục vụ trước đến trước.Giải pháp thứ ba này có thể ngăn chặn sự chờ đợi lâu dài, nhưng có thể đi kèm với các vấn đề của chính nó. Trong một giải pháp mà người đọc có mức độ ưu tiên, hệ thống cho rằng bất kỳ người đọc nào yêu cầu truy cập nên được phép trong đầu tiên, khi có quyền truy cập.Điều này có nghĩa là bất kỳ nhà văn nào muốn truy cập tài nguyên có thể cần phải chờ.Ngược lại, hệ thống có thể cho rằng vì các nhà văn cần thực hiện các thay đổi có thể ảnh hưởng đến độc giả, nên họ nên được ưu tiên theo vấn đề của độc giả-viết.Khi một người đọc được thực hiện với một tài nguyên, một nhà văn có thể nhảy vào để thực hiện thay đổi.Điều này không chỉ áp dụng cho các hành động của người dùng như cố gắng lưu tài liệu mà còn cho các quy trình nội bộ bên trong máy tính để giữ cho hệ thống chạy.khi nó đến.Điều này ngăn các nhà văn thực hiện các thay đổi ghi đè lên nhau hoặc gây nhầm lẫn cho độc giả, mà không khiến độc giả chờ đợi, hoặc buộc các nhà văn phải giữ trong khi độc giả hoàn thành.Các ưu tiên như vậy có thể được xây dựng thành một chương trình phần mềm hoặc kiểm soát truy cập bộ nhớ trong máy tính.Người dùng có thể thực hiện các thay đổi nếu họ thoải mái với lập trình và hệ thống cho phép nó.