Вопрос

у меня много спиновых блокировок в моем многопоточном коде, и большую часть времени они ожидают, пока другие потоки выполнят работу, и, таким образом, значительно сокращают загрузку процессора.В Linux я обычно использую pthread_cond_wait и pthread_cond_signal для приостановки потока и пробуждения при подаче сигнала.Есть ли что-то подобное в библиотеках boost?Бегло просмотрев, я ничего не смог найти.

Visual Studio 2005

Это было полезно?

Решение

Нашел это, boost называет их условными переменными: http://www.boost.org/doc/libs/1_39_0/doc/html/thread/synchronization.html#thread.synchronization.condvar_ref

Другие советы

Вы ищете Мьютекс или Семафор.В библиотеке Boost действительно есть Мьютекс и семафор Поддержка.

Мьютекс - это двоичный семафор, который просто рассматривается как блокировка, позволяющая только одному потоку проходить через ваш критическая секция.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top