потокобезопасная очередь

 
0
 
C++
ava
xbarmaglot | 04.10.2016, 13:22
нужна потокобезопасная очередь с ожиданием и отказами.
очередь должна быть с ограничением по размеру.

видел реализацию на QReadWriteLock и семафоре.
А стандартное есть что-нибудь?

еще бы хотелось прерывать ожидание по требованию
Ответы (2)
ava
Sajtran | 05.10.2016, 11:49 #
каждый лепит как может, подходов много
в вашем случае
очередь фиксированного размера - циклический буфер + нужно делать ожидание освобождения места в очереди ( +Event)
потокобезопасность - обычный Lock
будут проблемы со скоростью - будете думать (война план покажет)
ava
_GRIN_ | 16.12.2016, 12:52 #
Если можно в угоду быстродействию пожертвовать памятью, то можно держать две очереди. Одна доступна извне, вторая изнутри потока. Переключение между ними через atomic int (QAtomicInt), после переключения не забыть синхронизовать их. Иначе обынчый QMutex (lock/read-write/unlock).
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить