Lock Free vs spin lock
От: Nuzik Россия  
Дата: 24.10.11 00:02
Оценка:
Добрый день!

Не знал куда лучше запостить данный вопрос, т.к. раздела "многопоточного программирования" на форуме нет.

Возник следующий вопрос: насколько lock free программирование эффективнее spin блокировок? Имеются ли какие-нибудь исследования на этот счет?

Жду ответа remark'а и прочих мэтров многопоточности.

Спасибо
Re: Lock Free vs spin lock
От: Lazin Россия http://evgeny-lazin.blogspot.com
Дата: 24.10.11 05:23
Оценка:
Здравствуйте, Nuzik, Вы писали:

N>Добрый день!


N>Не знал куда лучше запостить данный вопрос, т.к. раздела "многопоточного программирования" на форуме нет.


N>Возник следующий вопрос: насколько lock free программирование эффективнее spin блокировок? Имеются ли какие-нибудь исследования на этот счет?


N>Жду ответа remark'а и прочих мэтров многопоточности.


N>Спасибо


Алгоритм использующий spin блокировки не является lock free алгоритмом, так как не обладает свойством termination safety. Поэтому сравнивать их с точки зрения эффективности не очень корректно, там где нужно гарантировать termination safety, spin блокировки использовать нельзя.
В общем случае производительность сравнивать тоже нельзя, можно сравнивать разные реализации одного и того же алгоритма.
Re: Lock Free vs spin lock
От: Sharov Россия  
Дата: 24.10.11 12:02
Оценка: 11 (1)
Здравствуйте, Nuzik, Вы писали:

Возможно в этой дискуссии Вы почерпнете для себя полезную информацию.
Кодом людям нужно помогать!
Re: Lock Free vs spin lock
От: Cyberax Марс  
Дата: 27.10.11 21:58
Оценка:
Здравствуйте, Nuzik, Вы писали:

N>Не знал куда лучше запостить данный вопрос, т.к. раздела "многопоточного программирования" на форуме нет.

N>Возник следующий вопрос: насколько lock free программирование эффективнее spin блокировок? Имеются ли какие-нибудь исследования на этот счет?
Есть фундаментальные работы по многопоточности. В частности, любой параллельный алгоритм можно переписать не просто в lock-free, а в wait-free (т.е. ни один поток не будет ожидать на блокировках). Обратная сторона этого — экспоненциальный расход памяти в худшем случае.

На практике, надо смотреть каждый случай.
Sapienti sat!
Re[2]: Lock Free vs spin lock
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 14.11.11 02:25
Оценка:
C>В частности, любой параллельный алгоритм можно переписать не просто в lock-free, а в wait-free (т.е. ни один поток не будет ожидать на блокировках).

а в чем основная идея переписывания?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.