Вопросы по теме 'lock-free'
освобождение памяти без блокировки с помощью 64-битных указателей
Книга Херлихи и Шавита ( Искусство многопроцессорного программирования ) решение по высвобождению памяти использует Java AtomicStampedReference<T>; .
Чтобы написать один на C++ для x86_64, я думаю, требуется по крайней мере 12-байтовая...
4337 просмотров
schedule
07.08.2023
В чем разница между безблокировкой и неблокировкой?
В контексте синхронизации структур данных может ли кто-нибудь прояснить разницу между «без блокировки» и «неблокирующим»? Эти термины, кажется, используются многими людьми взаимозаменяемо, но я пока не уверен, не скрыто ли где-то какое-то тонкое...
2159 просмотров
schedule
14.03.2023
Поточно-безопасная очередь без блокировки - нужен совет
Мне нужно разработать потокобезопасный регистратор. Мой регистратор должен иметь метод Log(), который просто ставит в очередь текст для регистрации. Также регистратор должен быть без блокировки, чтобы другие потоки могли регистрировать сообщения, не...
3712 просмотров
schedule
27.08.2022
Фобер и др. Очередь FIFO без блокировок: несколько потребителей и производителей?
Мне было интересно, представлена ли очередь fifo, представленная в статье Фобера и др. http://nedko.arnaudov.name/soft/L17_Fober.pdf был множественным потребителем и производил очередь FIFO. Если нет, то какая очередь FIFO с несколькими...
1323 просмотров
schedule
21.09.2022
Средняя задержка инструкций atomics cmpxchg на процессорах Intel
Я ищу справку о средней задержке для инструкции блокировки cmpxchg для различных процессоров Intel. Я не могу найти хорошую ссылку по теме, и любая ссылка очень поможет.
Спасибо.
4305 просмотров
schedule
28.12.2023
Бесплатная блокировка и потокобезопасный IList ‹T› для .NET
Есть ли структура данных без блокировок и потокобезопасность, реализующая IList?
Естественно, под безблокировкой я подразумеваю реализацию, которая не использует блокирующие примитивы в .NET, а скорее использует заблокированные операции / атомарные...
4285 просмотров
schedule
18.02.2023
Существует ли реализация вектора без блокировки?
Первый результат в Google для «вектора без блокировки» - это исследовательская статья, написанная в соавторстве с Дамианом Дечевым, Питером Пиркельбауэром и Бьярном Страуструпом, описывающая теоретический вектор без блокировки. Был ли реализован этот...
5430 просмотров
schedule
25.06.2022
Атомное чтение 16 байт на процессорах x64
Мне нужно прочитать/записать 16 байт атомарно. Я пишу только с помощью cmpxchg16, который доступен на всех процессорах x64, кроме, я думаю, одного малоизвестного AMD.
Теперь вопрос заключается в том, что для выровненных 16-байтовых значений,...
3635 просмотров
schedule
29.04.2023
Как использовать valgrind со структурами данных без блокировки?
Я экспериментирую со структурами без блокировок в библиотеке liblfds (http://www.liblfds.org/) с прицелом на их использование в цепочке инструментов, которая также включает valgrind для различных проверок ошибок, что вызывает у меня некоторые...
555 просмотров
schedule
18.12.2022
Можно ли реализовать карту без блокировки в C++
Мы разрабатываем сетевое приложение на основе C/S, мы обнаруживаем, что в std::map добавлено слишком много блокировок, что снижает производительность сервера.
Интересно, можно ли реализовать карту без блокировки, если да, то как? Есть ли там...
17715 просмотров
schedule
02.03.2023
Смешивание систем возможной согласованности и устаревших систем ACID
Существуют ли какие-либо шаблоны для смешивания систем конечной согласованности с устаревшими системами ACID?
Я хочу хранить данные в некоторых (как минимум двух) устаревших системах на мейнфрейме, которым нужны ACID-подобные транзакции. Эти базы...
259 просмотров
schedule
08.06.2023
Реализация структуры данных без блокировок на диске
У меня есть интересная задача для тех, кто имеет большой опыт работы со структурами данных без блокировок и структурами данных на основе дисков.
Я ищу способ построить на С++ структуру данных для хранения различного количества объектов....
867 просмотров
schedule
14.05.2022
Delphi [volatile] и InterlockedCompareExchange ненадежны?
Я написал простой стек узлов без блокировки (Delp[hi XE4, Win7-64, 32-разрядное приложение), в котором я могу иметь несколько «стеков» и одновременно извлекать/проталкивать узлы между ними из разных потоков. Он работает в 99,999% случаев, но в...
1684 просмотров
schedule
18.05.2023
Аппаратная транзакционная память Intel TSX, что видят нетранзакционные потоки?
Предположим, у вас есть два потока, один из которых создает транзакцию TSX и изменяет некоторую структуру данных. Другой поток не выполняет никакой синхронизации и читает ту же структуру данных. Является ли транзакция атомарной для него? На самом...
525 просмотров
schedule
16.05.2023
Один вектор с несколькими итераторами в многопоточном приложении без блокировки
У меня есть следующие функции в приложении С++:
Существует один предварительно выделенный std::vector фиксированной длины
1-й поток выполняет поиск по вектору (просто поиск элементов, соответствующих некоторому шаблону)
2-й поток иногда...
422 просмотров
schedule
24.07.2022
Обеспечение использования инструкции двойного сравнения и замены для стека без блокировки?
(Предположим, что 64-разрядная архитектура x86-64 и процессор Intel 3-го / 4-го поколения)
Вот реализация стека без блокировки из книги «Параллелизм в действии», стр. 202:
template<typename T>
class lock_free_stack
{
private:
struct...
2771 просмотров
schedule
12.06.2022
Надежный способ убедиться, что канал Go не блокируется
Я ищу надежный способ убедиться, что пустой канал в Go не блокирует мое выполнение. Мне приходится перебирать несколько каналов в определенном порядке (вид приоритетов), и как только я нахожу один из них с элементами, читаю его.
В настоящее время...
91 просмотров
schedule
05.09.2023
Неблокирующий алгоритм для изменения List‹V› в Java
Вариант использования требует, чтобы я не блокировал ни один поток при извлечении или помещении значений в List<V> . Я просматривал алгоритмы сравнения и замены , которые требуют от вас реализации структуру данных самостоятельно. Я хотел бы...
123 просмотров
schedule
19.09.2022
InterlockedCompareExchange - каковы точные требования к выравниванию и как их можно обеспечить?
Мне сложно понять значение документации MSDN для Семейство функций Interlocked Variable Access . Я использую InterlockedExchange для настройки и InterlockedCompareExchange для получения переменной-члена, которая используется несколькими...
1074 просмотров
schedule
08.11.2022
Объясните Майклу и Скотту алгоритм безблокировочной очереди
Я изучаю алгоритм очереди без блокировки Майкла и Скотта и пытаюсь реализовать его на С++.
Но я создал гонку в своем коде и думаю, что в алгоритме может быть гонка.
Я прочитал статью здесь: Простой, быстрый и практичный неблокирующий и...
5533 просмотров
schedule
04.12.2022