lock-free

Итак, мы используем версию boost, которая довольно стара на данный момент, и до обновления мне нужно иметь атомарную операцию CAS в C++ для моего кода. (мы еще не используем C++0x) Я создал следующую функцию cas: inline uint32_t CAS(volatile uint32_t *mem, uint32_t with, uint32_t cmp) { uint32_t prev ...

Кто-нибудь знает, можно ли сделать программирование без блокировки в Haskell? Меня интересует как вопрос о том, доступны ли соответствующие низкоуровневые примитивы, так и (если они есть) любая информация о том, что работает с точки зрения использования их для построения работающих крупномасштабных систем в ч...

Недавно нашли такую задачу Java-concurrency interview: Напишите простой стек без блокировки с помощью двух методов: push и pop. Я сделал концент: import java.util.concurrent.atomic.AtomicInteger; public class Stack { private AtomicInteger count = new AtomicInteger(-1); private Object[] data...

Как java AtomicReference работает под капотом? Я попытался Просмотреть код, но он основан на sun.разное.Небезопасно поэтому, вероятно, другой вопрос, как работает небезопасно?...

Я довольно новичок в многопоточном программировании,я просто знаю самую распространенную очередь производитель-потребитель. Я использую библиотеки boost c++ , и я не знаю, лучше ли использовать boost:: lockfree:: queue или класс-оболочку вокруг std:: queue, который использует 'mutex` и' condition_variable`. ...

В некоторых статьях об алгоритме некоторые используют слово lockfree, а некоторые используют lockless. В чем разница между lockless и lockfree? Спасибо! Обновить Http://www.intel.com/content/dam/www/public/us/en/documents/guides/intel-dpdk-programmers-guide.pdf Раздел 5.2 -- " Lockless Ring Buffer in Lin...

Я читаю Энтони Уильяма параллелизм C++ в действии. Глава 7 описывает процесс разработки стека без блокировки и иллюстрирует общие проблемы, которые затрудняют Программирование без блокировки. В частности, в разделе 7.2.3 (обнаружение узлов, которые не могут быть восстановлены с помощью указателей опасности) ...

В ответе переупорядочивание хранилища происходит при компиляции C++ для x86 @Peter Cordes написал Для получения/освобождения семантики, чтобы дать вам желаемый порядок, последний магазин должен быть магазином выпуска, а загрузка приобретения должна быть первый груз. Вот почему я сделал y std:: атом...

Я использовал AtomicReference для реализации AtomicInteger. Однако во время тестирования я заметил, что даже в однопоточной среде операция CAS застряла, как только ее значение достигло 128.. Я делаю что-то неправильно или есть оговорка в AtomicReference (может быть связано с CPU)? Вот мой код: public class ...

Я читал через ответ это Джон Скит дал вопрос и в нем он упомянул это: насколько я могу судить, многопоточность без блокировки - это для настоящих экспертов по резьбе, из которых я не один. Это не первый раз, когда я это слышал, но я нахожу очень мало людей, говорящих о том, как вы на самом деле это дела...