Здравствуйте, Nuzik, Вы писали:
N>Добрый день!
N>Не знал куда лучше запостить данный вопрос, т.к. раздела "многопоточного программирования" на форуме нет.
N>Возник следующий вопрос: насколько lock free программирование эффективнее spin блокировок? Имеются ли какие-нибудь исследования на этот счет?
N>Жду ответа remark'а и прочих мэтров многопоточности.
N>Спасибо
Алгоритм использующий spin блокировки не является lock free алгоритмом, так как не обладает свойством termination safety. Поэтому сравнивать их с точки зрения эффективности не очень корректно, там где нужно гарантировать termination safety, spin блокировки использовать нельзя.
В общем случае производительность сравнивать тоже нельзя, можно сравнивать разные реализации одного и того же алгоритма.
Здравствуйте, Nuzik, Вы писали:
N>Не знал куда лучше запостить данный вопрос, т.к. раздела "многопоточного программирования" на форуме нет. N>Возник следующий вопрос: насколько lock free программирование эффективнее spin блокировок? Имеются ли какие-нибудь исследования на этот счет?
Есть фундаментальные работы по многопоточности. В частности, любой параллельный алгоритм можно переписать не просто в lock-free, а в wait-free (т.е. ни один поток не будет ожидать на блокировках). Обратная сторона этого — экспоненциальный расход памяти в худшем случае.