Описание тега condition-variable
A synchronisation primitive used in multithreaded programming to wait for a condition to be true.
2
ответа
Использование std::conditional_variable для ожидания условия
Для простоты предположим, что у нас есть только одна условная переменная для соответствия одному условию, которое отражается логическим значением. 1) Почему std::condition_variable::wait(...) снова блокирует мьютекс после того, как "уведомление" был…
20 янв '17 в 18:13
2
ответа
Многопоточность Python: нужен совет для синхронизации 2 потоков с помощью условной переменной
Я знаю только основные понятия о многопоточности, и в настоящее время я сталкиваюсь с ситуацией, которая нуждается в некоторой помощи. У меня есть две задачи для завершения, и обе должны выполняться непрерывно. Дело в том, что вторая задача должна з…
02 апр '12 в 22:29
0
ответов
Как ждать булево значение без занятости
У меня есть приложение на Ruby, написанное с использованием DRb, в котором удаленный объект сообщает локальному объекту, что это делается путем переключения логического значения на локальный объект. В настоящее время я жду этого логического значения…
23 мар '13 в 14:45
1
ответ
C++ поток тупик
Я не могу выйти из этого тупика. Сначала позвольте мне объяснить словами, чего я хочу достичь: Main создает поток и ожидает его завершения в первый раз Поток получает блокировку, считывающую из источника столько, сколько он может (заполняет буферы и…
04 янв '16 в 23:56
1
ответ
Исключения при использовании mutex и condition_variable
Я пишу программу для чтения данных из файла.txt и использую его в выходной файл.txt. Я использую две темы; Первый поток предназначен для чтения данных из файла.txt, а второй - для записи их в выходной файл. Я новичок в программировании с mutex и con…
24 янв '18 в 20:45
0
ответов
Сколько мьютексов должно быть использовано в одном потоке
Я работаю над проектом C++ (11) и в основном потоке, мне нужно проверить значение двух переменных. Значение двух переменных будет установлено другими потоками с помощью двух разных обратных вызовов. Я использую две условные переменные для уведомлени…
24 окт '17 в 20:58
1
ответ
Проблема пробуждения нескольких потоков с помощью условной переменной API в win32
У меня есть проблема в понимании, как работают переменные условия winapi. С другой стороны, я хочу пару потоков, ожидающих каких-то условий. Затем я хочу использовать вызов WakeAllConditionVariable(), чтобы разбудить все потоки, чтобы они могли рабо…
29 окт '10 в 17:17
1
ответ
Несколько потоков, но только один разрешено использовать метод
Таким образом, в основном я нахожусь в ситуации, когда у меня есть куча потоков, каждый из которых выполняет разные вычисления в течение недели. В конце недели каждый поток вызывает функцию X(), а затем начинает вычисления для следующей недели и пов…
31 окт '12 в 02:46
4
ответа
Как гарантировать точный интервал ожидания потока?
Обычно, если я хочу смоделировать какую-то работу или ждать точного интервала времени, я использую condition_variable::wait_for или на худой конец thread::this_thread::sleep_for, Но condition_variable документация утверждает, что wait_for или же wai…
08 авг '17 в 14:33
1
ответ
Уведомление переменной условия пропущено
На данный момент я пишу какой-то шаблон Fork/Join с использованием std::threads. Поэтому я написал класс-оболочку для std:: thread, который использует счетчик ссылок для всех детей. Всякий раз, когда дочерний процесс завершает свое выполнение, счетч…
19 июн '15 в 14:31
0
ответов
MinGW Win32 - переменные условия не поддерживаются
Я использую Windows 7 со средой MSYS64 MinGW. В данный момент пытаюсь получить Win32 родной ConditionVariables работать с приложением C++, но безуспешно: связанные функции, по-видимому, не объявлены в windows.hи даже LD не может разрешить их из kern…
11 апр '17 в 19:10
1
ответ
Ошибка инициализации переменной условия и / или мьютекса - в настройке IPC
У меня есть следующий код, который инициализирует разделяемую память, содержащую 1 мьютекс и 1 переменную условия, затем разветвляет процесс, где родительский элемент передает дочернему элементу несколько символов через канал и сигнализирует дочерне…
27 июл '13 в 15:56
0
ответов
Блокировка Java / Условная переменная - signal() не пробуждает поток
Поэтому застрял здесь, пытался искать ответы, не мог найти ни одного. Просто я продолжаю пытаться заставить Поезд сигнализировать Пассажиру, что он находится на станции. Сигнал постоянно зацикливается, но пассажир просто не просыпается. Я распечатал…
05 авг '16 в 16:30
1
ответ
Почему boost::timed_wait блокируется навсегда, когда вызывается с абсолютным временем?
Я пытаюсь понять, как использовать timed_wait, Я нашел только несколько примеров ( здесь и здесь), и у меня есть проблема при вызове с абсолютным временем. Следующий код является упрощенным примером, в действительности все это происходит внутри клас…
07 июн '17 в 08:17
3
ответа
std::condition_variable ложная блокировка
Как вы знаете, условные переменные должны вызываться в цикле, чтобы избежать ложных пробуждений. Как это: while (not condition) condvar.wait(); Если другой поток хочет разбудить ожидающий поток, он должен установить флаг условия в значение true. Нап…
25 фев '13 в 17:11
1
ответ
VC++ 11 - std::condition_variable_any не совместим со стандартом?
Недавно я столкнулся со странными проблемами компиляции в Microsoft Visual Studio 2012 (оснащенной Visual C++ 11). Я перенес большую базу кода, разработанную в основном на Linux, с учетом широкого использования C++ 11. Несмотря на несколько небольши…
17 май '15 в 21:24
1
ответ
Рабочая блокировка NSCondition
В последнее время я использую NSCondition, и я действительно не понимаю часть блокировок и разблокировок. Например, NSCondition lock = [NSCondition new]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //Do stuff [lo…
04 мар '15 в 09:29
6
ответов
Почему Python threading.Condition() notify() требует блокировки?
Мой вопрос относится именно к тому, почему он был разработан таким образом из-за ненужного влияния на производительность. Когда поток T1 имеет этот код: cv.acquire() cv.wait() cv.release() и поток T2 имеет этот код: cv.acquire() cv.notify() # requir…
06 сен '17 в 13:09
0
ответов
Условная переменная notify_one notify_all
Я пытаюсь изучить условные переменные, и я застрял в следующем примере. я думал так notify_one На потребителях следует разблокировать только одного ожидающего потребителя. Но после повторного запуска мне кажется, что это не так. Я изменился notify_o…
05 апр '15 в 08:10
1
ответ
Почему переменная condition_variable не является MoveAssignable
Почему condition_variable не MoveConstructible (согласно http://en.cppreference.com/w/cpp/thread/condition_variable)? Это запрещает включение в много контейнеров (например, std::unordered_map) которые двигают вещи вокруг. Это заставляет людей исполь…
06 июл '16 в 19:49