Потоконезависимые очереди, реализация |
Здравствуйте, гость ( Вход | Регистрация )
Потоконезависимые очереди, реализация |
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 |
Что имеется ввиду под "потоконезависимые"? QList использовать можно, если к одному экземпляру списка нужен доступ на запись из разных потоков, то придется использовать механизмы синхронизации. Что вообще требуется от этой очереди? Насколько я понимаю, под потоконезависимыми подразумевается, скорее всего, когда механизм синхронизации происходят внутри реализации очереди, хотя я лично смутно это себе представляю. Но такое в принципе возможно, когда синхронизация происходит внутри реализации? |
|
|
BRE |
7.11.2011, 12:23
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
AD |
7.11.2011, 12:45
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Конечно возможно. Но для этого нужно определиться какими свойствами эта очередь должна обладать. Например, что за свойства такие особенные? Насколько я знаю, ее определение из вики вполне оправдывает все ее особенности: Цитата О́чередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется. Ну а то, что реализация может быть на связном списке, на массиве или еще как-то, то это я знаю! |
|
|
BRE |
7.11.2011, 13:09
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Например, что за свойства такие особенные? Опиши, как ты с ней будешь работать из разных потоков? Например, один поток помещает в очередь задания, а несколько других потоков их вынимают и выполняют или несколько потоков туда помещают данные, а один поток их сохраняет в базу, или... |
|
|
Текстовая версия | Сейчас: 27.11.2024, 2:03 |