Алгоритм страуса
Алгори́тм страуса в інформатиці, це стратегія нехтування потенційними проблемами через те, що імовірність їх виникнення надзвичайно мала — «занурити голову в пісок і уявити, що проблеми немає». Тобто, припускається, що ефективніше дозволити проблемі реалізуватися, ніж спробувати її попередити.
Такий підхід може бути застосовано для взаємного блокування при паралельному програмуванні, якщо ми віримо в дуже низьку імовірність такого блокування, а вартість виявлення або запобігання зависока.
Взаємні поступки
- Зручність
- Правильність
Це один з методів роботи із взаємними блокуваннями. Інші методи: уникнення (алгоритм Пітерсона), запобігання (алгоритм банкіра), виявлення та відновлення.
Недоліки
У найгіршому випадку (коли проблеми виникають досить часто) цей алгоритм призводить до вкрай низької продуктивності системи. Алгоритми з низькою продуктивністю у найгірших випадках здебільшого застосовують через те, що низьку продуктивність вони виявляють на штучних прикладах, які майже не зустрічаються у практиці; типові приклади це симплекс-метод і алгоритм перевірки типів для Standard ML. Такими випадками як цілочисельне переповнення цілих фіксованої ширини у мовах програмування також часто нехтують через те, що вони стаються лише у виняткових випадках, які не зустрічаються у практичних вхідних даних.