Lock-free — более формальная вещь (ищите lock-free алгоритмы). Суть его для структур данных в том, что если два потока/процесса обращаются к структуре данных и один из них умирает, то второй все равно гарантированно завершает операцию.
Lockless — это реализация — это означает, что алгоритм не использует блокировки (или, используя более формальное название — взаимное исключение).
Следовательно, алгоритм без блокировки также не имеет блокировки (потому что, если один поток заблокируется, а затем умрет, другой будет ждать вечно), но не наоборот - есть алгоритмы, которые не используют блокировки (например, они используют сравнение и обмен). ), но все же может зависнуть, если другой процесс умрет. Упомянутый выше кольцевой буфер dpdk является примером блокировки без блокировки.
person
Uri Simchoni
schedule
27.11.2014