❓ Чем отличаются Lock-Free и Wait-Free алгоритмы
Оба подхода относятся к неблокирующей синхронизации, но дают разные гарантии прогресса.
Lock-Free
• Гарантируют, что хотя бы один поток завершит операцию за конечное число шагов.
• Отдельные потоки при этом могут надолго застревать в повторных попытках (starvation).
• Проще в реализации и обычно показывают высокую производительность.
Wait-Free
• Гарантируют, что каждый поток завершит операцию за конечное число шагов.
• Сложнее в реализации и часто медленнее из-за более тяжёлой координации между потоками.
• Применяются там, где критично равноправие (fairness) — например, в системах реального времени.
Коротко: Lock-Free гарантирует прогресс системы в целом, а Wait-Free — прогресс каждого отдельного потока.
🐸 Библиотека Go для собеса
Post #1463
1.47K
- ❤ 5