вторник, 29 сентября 2009 г.

Материалы по lock-free

Тут в Вики статья "Non-blocking synchronization". Обратите внимание на различия в Wait-freedom, Lock-freedom и Obstruction-freedom.
Тут в Вики часть статьи "Lock" с подзаголовком "The problems with locks".
Тут на русском, тут на английском статья "Введение в неблокирующие алгоритмы". Рассматриваются:
- Неблокирующий счетчик
- Неблокирующий стек Трайбера (Treiber)
- Неблокирующая очередь Майкла-Скотта (Michael-Scott)

P.S. Именно очередь Майкла-Скотта использована в java.util.concurrent.ConcurrentLinkedQueue. Там в javadoc так и написано "This implementation employs an efficient "wait-free" algorithm based on one described in Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms by Maged M. Michael and Michael L. Scott.".

1 комментарий:

  1. Вот тут я описывал свойства lock-/wait-/obstruction-/atomic-free на русском:
    http://www.rsdn.ru/forum/philosophy/2930849.1.aspx
    А вот тут приводил некоторые материалы по lock-free:
    http://rsdn.ru/forum/cpp/2414109.aspx
    А тут в целом про многопоточность и распараллеливание:
    http://rsdn.ru/forum/philosophy/2914506.1.aspx

    ОтветитьУдалить