crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Потоконезависимые очереди, реализация
AD
  опции профиля:
сообщение 7.11.2011, 10:28
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Есть ли в библиотеках Qt, boost реализация потоконезависимых очередей? Можно ли применить QList? Если нет, есть ли в инете подобное? Поискал сам, пока ничего путного не видел. Может быть кто-то уже видел что-то подобное?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 7.11.2011, 11:44
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Что имеется ввиду под "потоконезависимые"?
QList использовать можно, если к одному экземпляру списка нужен доступ на запись из разных потоков, то придется использовать механизмы синхронизации.
Что вообще требуется от этой очереди?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 7.11.2011, 12:02
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 7.11.2011, 12:44) *
Что имеется ввиду под "потоконезависимые"?
QList использовать можно, если к одному экземпляру списка нужен доступ на запись из разных потоков, то придется использовать механизмы синхронизации.
Что вообще требуется от этой очереди?

Насколько я понимаю, под потоконезависимыми подразумевается, скорее всего, когда механизм синхронизации происходят внутри реализации очереди, хотя я лично смутно это себе представляю. Но такое в принципе возможно, когда синхронизация происходит внутри реализации?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 7.11.2011, 12:23
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 7.11.2011, 13:02) *
Но такое в принципе возможно, когда синхронизация происходит внутри реализации?

Конечно возможно. Но для этого нужно определиться какими свойствами эта очередь должна обладать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 7.11.2011, 12:45
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 7.11.2011, 13:23) *
Конечно возможно. Но для этого нужно определиться какими свойствами эта очередь должна обладать.

Например, что за свойства такие особенные? Насколько я знаю, ее определение из вики вполне оправдывает все ее особенности:
Цитата
О́чередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.

Ну а то, что реализация может быть на связном списке, на массиве или еще как-то, то это я знаю!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 7.11.2011, 13:09
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 7.11.2011, 13:45) *
Например, что за свойства такие особенные?

Опиши, как ты с ней будешь работать из разных потоков? :)
Например, один поток помещает в очередь задания, а несколько других потоков их вынимают и выполняют или несколько потоков туда помещают данные, а один поток их сохраняет в базу, или... ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- AD   Потоконезависимые очереди   7.11.2011, 10:28
- - BRE   Что имеется ввиду под "потоконезависимые...   7.11.2011, 11:44
|- - AD   Цитата(BRE @ 7.11.2011, 12:44) Что имеетс...   7.11.2011, 12:02
|- - BRE   Цитата(AD @ 7.11.2011, 13:02) Но такое в ...   7.11.2011, 12:23
|- - AD   Цитата(BRE @ 7.11.2011, 13:23) Конечно во...   7.11.2011, 12:45
|- - BRE   Цитата(AD @ 7.11.2011, 13:45) Например, ч...   7.11.2011, 13:09
|- - AD   Цитата(BRE @ 7.11.2011, 14:09) Опиши, как...   7.11.2011, 13:31
- - Iron Bug   в бусте есть библиотека intrusive - там реализован...   7.11.2011, 12:45
- - Алексей1153   без синхронизации никуды )   7.11.2011, 13:17
- - BRE   На соседнем форуме обсуждали. Одна из тем: http://...   7.11.2011, 13:50
|- - AD   Цитата(BRE @ 7.11.2011, 14:50) На соседне...   9.11.2011, 17:30
- - BRE   Не нужны там семафоры (для другого они заточены), ...   9.11.2011, 17:45
|- - AD   Цитата(BRE @ 9.11.2011, 18:45) Не нужны т...   9.11.2011, 18:19
- - BRE   Чаще всего встречал перевод "условные перемен...   9.11.2011, 19:05
|- - AD   Ага. Ну тут еще вопросы. Смысл программы следующий...   10.11.2011, 10:19
|- - AD   Из главного потока запустил дополнительный. В допо...   10.11.2011, 14:22
- - BRE   Не нужно ждать условную переменную. Она нужна в ра...   10.11.2011, 10:26
- - BRE   "Память жрет" это ты про "процессор...   10.11.2011, 15:27
|- - AD   Цитата(BRE @ 10.11.2011, 16:27) "Пам...   10.11.2011, 15:30
- - Iron Bug   дык, в безусловном цикле крутится - потому и жрёт....   10.11.2011, 15:38
|- - AD   А вот так в поток не попадаю вторично: /// Запуск ...   10.11.2011, 15:47
- - BRE   Пытаешься написать методом научного тыка?   10.11.2011, 16:19
|- - AD   Цитата(BRE @ 10.11.2011, 17:19) Пытаешься...   10.11.2011, 16:26
- - BRE   exec никуда не возвращает, она просто запускает ци...   10.11.2011, 16:36
- - AD   Цитата(BRE @ 10.11.2011, 17:36) exec нику...   10.11.2011, 16:40
- - BRE   Цитата(AD @ 10.11.2011, 17:40) Цитата(BRE...   10.11.2011, 16:58


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 2:03