Задача читачів та записувачів

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Задача про читачів та записувачів (англ. readers–writers problem) — одна з задач синхронізації в інформатиці, що забезпечує ексклюзивний доступ до спільного ресурсу.

Це задача про доступ багатьох потоків до спільної пам'яті, кожен з яких може читати або записувати дані, при умові, що доступ інших потоків до даних заборонений під час запису даних.

Для її вирішення застосовується примітив синхронізації read–write lock.

Існує три варіанти цієї задачі:

  • з пріоритетом читача — читач не повинен очікувати, якщо інший читач в цей час читає дані;
  • з пріоритетом записувача — записувач не повинен чекати більше ніж це абсолютно необхідно;
  • чесний розподіл ресурсів — кожен потік повинен виконати свою роботу, незалежно від дій інших потоків.

Джерела[ред. | ред. код]