Описание тега boost-mutex

Классы взаимного исключения библиотеки Boost.Thread предназначены для сериализации доступа к ресурсам, совместно используемым потоками C++.
1 ответ

Неопределенная ссылка для boost::mutex в структуре

Я хочу использовать boost::mutex для добавления функции моей структуры Cell. Вот определение моей структуры в Detector.h class Detector { private: struct Cell{ static boost::mutex mutex_; double energy; double sqrt_energy; int histories; inline Cell…
11 ноя '16 в 22:49
2 ответа

Отсрочка блокировок и `boost::lock`

Я читал разницу между lock_guard и unique_lock и обнаружил, что unique_lock - это расширенная версия lock_guard. Так, что с уникальной блокировкой блокировку всегда можно отложить. Я читал эту статью и натолкнулся на boost::lock. Я хотел знать, как …
31 окт '13 в 02:10
1 ответ

У всех потоков в boost::thread_group один и тот же поток в отношении boost::recursive_mutex

Я подозреваю, что из-за поведения моего кода, если у меня есть boost::thread_group, обращающийся к объекту, защищенному boost::recursive_mutex, то мьютекс не препятствует одновременному входу потоков в защищенную область изнутри группы. Это сбивает …
04 фев '15 в 22:14
1 ответ

Один Писатель Много Читателей выпускают для карты

Кажется, у меня возникла проблема с синхронизацией сбора данных. В этом конкретном классе у меня есть переменная сбора данных, мьютекса и условия, которая выглядит примерно так: map<std::string, double> collection; boost::mutex collectionMutex…
11 июн '13 в 20:49
0 ответов

boost::lock_guard ждет вечно

Я разрабатываю LRU-кеш на C++, используя буст-мьютексы и блокировки, в многопоточной среде. Архитектура основана на boost::unordered_map + lock-free-queue Вставки работают в неблокирующем режиме (try_lock), но удаления должны заблокировать карту и п…
01 июн '12 в 07:18
1 ответ

Как расширить контейнер списка бустов C++ для реализации поточно-ориентированной реализации с использованием буст-обновления mutex?

Я написал некоторый пример тестового кода, чтобы проверить функциональность использования мьютексов буст-апгрейда для реализации блокировки мьютексов чтения / записи над контейнером буст-списка. У меня десять тем, 5 читателей, 5 писателей.Я использо…
07 ноя '12 в 00:20
1 ответ

Скрыть Boost::mutex из интерфейса DLL из блокируемого контейнера

Я использовал Boost в проекте DLL, но не экспортировал какие-либо зависимости Boost... пока. Просто C-типы и вещи, которые происходят от самого дерева исходного кода DLL. Но сейчас я борюсь с блокируемой моделью данных... Я не могу создать безопасну…
30 авг '13 в 15:53
1 ответ

Мьютекс может повесить исполнение?

Я довольно новичок в использовании мьютексов серьезно. После реализации нескольких мьютексов в разных местах я понял, что выполнение программы зависает (не завершается). Я попытался отладить его (в среде затмения), но не смог найти определенную прич…
16 апр '13 в 09:45
2 ответа

(повышение) издержек unique_lock при использовании с условной_вариабельной

Почему wait() метод boost::conditiona_variable требовать boost::unique_lock объект как параметр, а не простой boost::mutex? На самом деле, не совсем понятно назначение unique_lock. Почему я должен создать еще один объект-обертку вокруг моего boost::…
0 ответов

Наличие нескольких блокировок считывателя в одном потоке

У меня есть данные в сочетании с Lock = boost::shared_mutex, Я блокирую доступ к данным с помощью блокировка считывателя ReadLock = boost::shared_lock<Lock> и писатель замки WriteLock = boost::unique_lock<Lock>, Очевидно, что многие чита…
1 ответ

boost::mutex Release VS Debug Build

Я создаю приложение на основе PCL, для которого используется код граббера PCL по умолчанию для velodyne, который можно увидеть здесь. Когда я собираю свое приложение в режиме отладки, оно работает в соответствии с ожиданиями, но в версии сборки обла…
1 ответ

Повысить общий мьютекс, если он заблокирован в том же потоке

Когда я пишу многопоточные алгоритмы, я считаю, что для некоторых методов полезно ожидать состояния мьютекса. Для кого-то это уже заперто, для кого-то это не так. Я придумываю подход, как утверждать, что мьютекс уже должен быть заблокирован: ASSERT(…
26 мар '15 в 17:13
1 ответ

Boost::thread mutex проблема: попытка блокировки, нарушение прав доступа

В настоящее время я учусь многопоточности с C++, и для этого я использую Boost:: Thread. Я использую его для простого игрового движка, запускающего три потока. Два потока читают и записывают в одни и те же переменные, которые хранятся внутри чего-то…
13 дек '12 в 22:51
1 ответ

boost-threads: Как я могу передать scoped_lock вызываемому объекту?

Я новичок в библиотеке потоков Boost. У меня есть ситуация, когда я приобретаю scoped_lock в одной функции и нужно ждать его в вызываемом. Код находится в строках: class HavingMutex { public: ... private: static boost::mutex m; static boost::conditi…
01 авг '12 в 15:32
1 ответ

Ошибка запуска ускорения потока, если объект потока объявлен как член

Я написал класс с именем Task, который инкапсулирует boost::thread и позволяет переопределить метод run() для выполнения некоторой работы во вновь созданном потоке. Вот базовый класс: class Task { typedef boost::function<void ()> TaskEventCall…
1 ответ

Почему мьютекс try_lock возвращает false, даже если у вас есть мьютекс?

Рассмотрим этот простой код: boost::mutex m; m.lock(); bool locked = m.try_lock(); std::cout<< (!locked? "Can't use lock" : "Can use lock.")<<std::endl; system("pause"); Код распечатки Can't use lock, Это проблема, потому что в моей прог…
04 ноя '15 в 15:18
1 ответ

Повышение именованных мьютексов в контейнерах докеров

В нашем проекте мы используем некоторую сетевую библиотеку с хитрыми правилами. Одним из них является то, что мы должны вручную создать некоторую идентификацию int, которая должна быть уникальной для каждого процесса на одном хосте (она также должна…
25 июн '18 в 08:06
2 ответа

Использование Boost mutex в двух разных классах

Я использую Boost Mutex в классе MessageQueue в качестве частного члена в следующем методе void MessageQueue::Dequeuee() { Request rq(messageWareHouse.front().reqID,messageWareHouse.front().seq, messageWareHouse.front().sMessage); while(true) { boos…
10 авг '12 в 05:26
2 ответа

boost::shared_mutex медленнее, чем грубый std::mutex в Linux

У меня есть std::unordered_map которая подвергается очень большой нагрузке на чтение из нескольких потоков. Я мог бы использовать std::mutex для синхронизации, но так как одновременное чтение должно быть в порядке, я хотел использовать boost::shared…
18 май '16 в 14:58
5 ответов

Синхронизировать запись для входа в многопоточный процесс

Я реализовал Logger, поэтому его можно использовать как ostream. например, если кто-то хочет написать в журнал - он может сделать что-то вроде этого: LOG << "hello world " << 6 << 8.6 << "\n"; Журнал будет записан на экран, в…
19 фев '18 в 15:04