Тут в Вики статья "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.".
вторник, 29 сентября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Вот тут я описывал свойства 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