Поиск:

Ответ в темуСоздание новой темы Создание опроса
> потокобезопасная очередь 
:(
    Опции темы
xbarmaglot
Дата 4.10.2016, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 28.8.2012

Репутация: нет
Всего: нет



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

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

еще бы хотелось прерывать ожидание по требованию
PM MAIL   Вверх
Sajtran
Дата 5.10.2016, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



каждый лепит как может, подходов много
в вашем случае
очередь фиксированного размера - циклический буфер + нужно делать ожидание освобождения места в очереди ( +Event)
потокобезопасность - обычный Lock
будут проблемы со скоростью - будете думать (война план покажет)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 5.10.2016, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



каждый лепит как может, подходов много
в вашем случае
очередь фиксированного размера - циклический буфер + нужно делать ожидание освобождения места в очереди ( +Event)
потокобезопасность - обычный Lock
будут проблемы со скоростью - будете думать (война план покажет)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 5.10.2016, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



каждый лепит как может, подходов много
в вашем случае
очередь фиксированного размера - циклический буфер + нужно делать ожидание освобождения места в очереди ( +Event)
потокобезопасность - обычный Lock
будут проблемы со скоростью - будете думать (война план покажет)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 5.10.2016, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



каждый лепит как может, подходов много
в вашем случае
очередь фиксированного размера - циклический буфер + нужно делать ожидание освобождения места в очереди ( +Event)
потокобезопасность - обычный Lock
будут проблемы со скоростью - будете думать (война план покажет)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 5.10.2016, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



каждый лепит как может, подходов много
в вашем случае
очередь фиксированного размера - циклический буфер + нужно делать ожидание освобождения места в очереди ( +Event)
потокобезопасность - обычный Lock
будут проблемы со скоростью - будете думать (война план покажет)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
_GRIN_
Дата 16.12.2016, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Если можно в угоду быстродействию пожертвовать памятью, то можно держать две очереди. Одна доступна извне, вторая изнутри потока. Переключение между ними через atomic int (QAtomicInt), после переключения не забыть синхронизовать их. Иначе обынчый QMutex (lock/read-write/unlock).


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0766 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.