Russian Qt Forum
Ноябрь 24, 2024, 04:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: обмен данными между потоками  (Прочитано 5945 раз)
ilyagoo
Гость
« : Декабрь 10, 2008, 11:37 »

в главном gui потоке создаются n потоков. каждый из них получает массивы данных. как эти данные вытащить?
судя по всему, передача указателя не сработает, т.к. массив будет находиться в другой нити.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Декабрь 10, 2008, 11:56 »

судя по всему, передача указателя не сработает, т.к. массив будет находиться в другой нити.

сработает, только нужно позаботится синхронизации потоков. Посомтрите Thread Support in Qt

Другой вариант воспользоваться qtsharedmemory из Qt Solutions
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Tonal
Гость
« Ответ #2 : Декабрь 11, 2008, 09:06 »

qtsharedmemory то зачем? Оно для коммуникации между процессами.
Потоки разделяют все данные, так что кроме синхронизации тут ничего не нужно. Улыбающийся
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Декабрь 11, 2008, 13:27 »

Оно для коммуникации между процессами.

Нетолько, можно использовать и между потоками.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Tonal
Гость
« Ответ #4 : Декабрь 11, 2008, 14:58 »

Если можно подождать с обработкой до тех пор, пока все данные не приедут, я бы делал так:
1. распределял новый блок данных в слушающем потоке и ждал данных;
2. забивал его данными;
3. когда данные кончились выбрасывал сигнал с указателем на блок;
4. Переходил в п1

А если обработку нужно начинать сразу  использовал бы какой-нибудь тип очереди с блокировками. Если данные поступают быстрее чем обрабатываются, то так можно получить выигрыш по сравнению с единственным буфером. Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.146 секунд. Запросов: 23.