lock-free — все вопросы

1ответ
4 голоса
Поддельные потери в реализации очереди без блокировки C ++
Я пытаюсь реализовать очередь без блокировки, которая использует линейный круговой буфер для хранения данных. В отличие от очереди без блокировки общего назначения, у меня есть следующие расслабляющ
1ответ
4 голоса
Безопасно ли использовать rcu_dereference () внутри local_bh_disable () /local_bh_enable ()?
Функция local_bh_disable меняет процессор (в случае x86 и последних ядер) __preempt_count или current_thread_info()->preempt_count в противном случае. В любом случае, это дает нам льготный пер
1ответ
4 голоса
Почему CAS не считается эквивалентным циклам ожидания?
Прочитав немного о программировании без блокировок за последние несколько дней, я наткнулся на класс util.java.Random, создав его биты с помощью следующей процедуры: protected int next(int bits) {
1ответ
4 голоса
std :: atomic для встроенных типов - без блокировки без тривиального деструктора
Просмотр std::atomic и его специализации по умолчанию, которые я прочитал:    Эти специализации имеют стандартный макет, тривиальные конструкторы по умолчанию и тривиальные деструкторы .
1ответ
4 голоса
Недостатки использования ссылочного параметра для возврата значения в pop-free без блокировки
В настоящее время я читаю Уильямса "Параллельность C ++ в действии".Теперь я остановился на теме, посвященной реализации pop-free без блокировок.Без блокировки поп:Вот цитата из обсуждения этого кода:
3ответа
4 голоса
Lockfree стандартные коллекции и учебник или статьи
Кто-нибудь знает хороший ресурс для реализации (имеется в виду исходный код) обычных типов данных без блокировки.Я думаю о списках, очередях и так далее?Реализации блокировки очень легко найти, но я н
1ответ
4 голоса
увеличить блокировку доступа к кэш-памяти spsc_queue
I need to be extremely concerned with speed/latency in my current multi-threaded project. Cache access is something I'm trying to understand better. And I'm not clear on how lock-free queues (su
3ответа
4 голоса
C ++ memory_order_consume, kill_dependency, зависимость-упорядоченный-до, синхронизируется-с
Я читаю C ++ Concurrency in Action Энтони Уильямса.В настоящее время я нахожусь в точке, где он описывает memory_order_consume.После этого блока есть:Теперь, когда я рассмотрел основы упорядочения пам
3ответа
7 голосов
Не нужны ли эти строки в очереди без блокировки?
Вот код из очереди без блокировки, использующей CompareAndSet (в Java): public void enq(T value) { Node newNode = new Node(value); while(true) { Node last = tail.get(); Nod
1ответ
8 голосов
Хорошо проверенная C /C ++ блокировка свободной очереди? [Дубликат]
   Возможный дубликат: Существует ли готовая к производству очередь без блокировки или реализация хеша в C ++ Я ищу хорошо протестированную общедоступную реализацию C /C ++ очереди без бло
3ответа
8 голосов
C ++ 11 один свободный производитель без блокировки: как избежать занятого ожидания
Я пытаюсь реализовать класс, который использует два потока: один для производителя и один для потребителя. Текущая реализация не использует блокировки: #include <boost/lockfree/spsc_queue.hpp&g
4ответа
9 голосов
Путаница с ошибкой реализации в деструкторе shared_ptr
Я только что видел выступление Херба Саттера: C ++ и после 2012 года: Herb Sutter - atomic <> Оружие, 2 из 2 Он показывает ошибку в реализации деструктора std :: shared_ptr: if( control
4ответа
9 голосов
Библиотека алгоритмов без блокировки
Существует ли библиотека, которая реализует алгоритмы без блокировки (очередь, связанный список и другие), написанные на C (не на C ++)? Я взглянул на некоторые библиотеки, такие как Intel, но я хоте
7ответов
10 голосов
блокировка свободных контейнеров и видимости
Я видел несколько реализаций стека без блокировок ... Мой вопрос касается видимости, а не атомарности. Например, элементы ( не указатели ) свободного стека должны быть не более 64 бит? Я так думаю,
2ответа
10 голосов
Является ли Clojure lockfree с помощью алгоритмов без блокировки?
Я прогрессирую в своем квесте Clojure (около 4 задач решено на 4clojure.com), и я продолжаю читать и кодировать и пытаюсь «получить его». Теперь я немного озадачен тем, что Clojure предназначен д
3ответа
11 голосов
как поместить std :: string в boost :: lockfree :: queue (или альтернативу)?
Я пытаюсь поместить std::string в boost::lockfree::queue, чтобы мои темы могли обновлять друг друга новыми данными. Когда я пытаюсь использовать boost::lockfree::queue<std::string> updated_
1ответ
12 голосов
Понимание модели памяти CLR 2.0
Джо Даффи, дает 6 правил, описывающих модель памяти CLR 2.0+ (это фактическая реализация, а не какой-либо стандарт ECMA) Я записываю свою попытку выяснить это, в основном, как способ резинового ук
2ответа
19 голосов
Как реализовать список пропусков без блокировки
Мне нужно реализовать список пропусков без блокировки. Я пытался искать документы. К сожалению, все, что я нашел, было свободными от блокировки единственными связанными списками (во многих вариантах)
2ответа
32 голоса
Использование очереди Boost.Lockfree медленнее, чем использование мьютексов
До сих пор я использовал std::queue в своем проекте. Я измерил среднее время, необходимое для конкретной операции в этой очереди. Время измерялось на 2 машинах: моей локальной виртуальной машине
3ответа
75 голосов
стоимость атомной операции
Какова стоимость атомарной операции (любая из операций сравнения и замены или атомарного добавления /уменьшения)? Сколько циклов он потребляет? Это приостановит другие процессоры на SMP или NUMA, ил
1 2

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132