Результаты поиска по запросу "condition-variable"

0 ответов

Почему нет функции ожидания для condition_variable, которая не блокирует мьютекс

Рассмотрим следующий пример.

2 ответа

 что доступ к фактической переменной, которую вы проверяете, контролируется через

2 ответа

этот ответ

овать POSIX:

ТОП публикаций

1 ответ

 Обратите внимание, что он не утверждает, что поведение некорректно, он только представляет случай, когда поведение может быть не таким, как ожидалось.

-то читал, что мы должны заблокироватьмьютексперед звонкомpthread_cond_signalи разблокировать его после вызова: Подпрограмма pthread_cond_signal () используется для сигнализации (или пробуждения) другого потока, который ожидает переменную ...

4 ответа

Не очень элегантно, и в этом есть куча накладных расходов - но это имеет смысл, а не какой-то сумасшедший взлом.

аюсь реализовать кроссплатформенный код на C ++ 11. Часть этого кода реализует объект семафора, используястанд :: condition_variable [https://en.cppreference.com/w/cpp/thread/condition_variable], Когда мне нужно сделать время ожидания на семафор, ...

4 ответа

Так как это обычный вариант использования для pthread_cond, учебник вызывает эту логическую ошибку. Но ничего не потерпит крах и не произойдет неожиданного поведения. В нормальном потоке выполнения cond_signal () может по-прежнему выдаваться, когда в cond_wait () нет потоков: например, все читатели могут просто выполнять обработку сообщений, когда писатель добавляет еще один фрагмент данных в очередь.

аписано в учебнике по потокам POSIX https://computing.llnl.gov/tutorials/pthreads/ [https://computing.llnl.gov/tutorials/pthreads/]что это логическая ошибка. мой вопрос почему это логическая ошибка? В моей программе мне нужно использовать эти ...

1 ответ

Ограничение 6-минутного минимального редактирования можно обойти. Внесите необходимые изменения, а также добавьте дополнительный комментарий, в верхней части скажем. Затем, если вы хотите, вы можете сделать второе редактирование и удалить дополнительный комментарий.

ы принципы условной переменной при синхронизации процессов операционных систем?

1 ответ

, С некоторой адаптацией это кажется вызовом.

о-нибудь есть пример того, как наиболее просто использовать boost :: condition :: timed_wait? Есть несколько тем по темеВот [https://stackoverflow.com/questions/2259025/how-do-i-get-boostconditiontimed-wait-to-compile] , ...

3 ответа

Что происходит при вызове деструктора объекта потока, который ожидает переменную условия?

Я используюSynchronisedQueue общаться между потоками. Я обнаружил, что уничтожение объекта потока, когда присоединяющий поток ожидает переменную условия, приведет к сбою программы. Это можно исправить, позвонивdetach() до разрушения нити. Но мне ...

1 ответ

std :: condition_variable :: notify_one () вызывается несколько раз без переключения контекста

Сколько ожидающих потоков проснется в этом примере: 1-й поток: void wakeUp2Threads() { std::unique_lock<std::mutex> lock(condvar_mutex); condvar.notify_one(); condvar.notify_one(); }2-й поток: { std::unique_lock<std::mutex> ...