Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 20:51   #1
Satansoft
Пользователь
 
Регистрация: 24.11.2012
Сообщений: 40
Сообщение Массив threads(Qt)

Доброго времени, как в Qt создать массив потоков на n их количество?
Satansoft вне форума Ответить с цитированием
Старый 27.11.2014, 21:26   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Может я что-то не понимаю, но
QThread **threads = new QThread*[n];
не работает?
Ну или
QVector<QThread*> threads;

В чем проблема то? И зачем тебе вообще массив потоков? )

Вот тут юзается массив потоков: http://pro-prof.com/archives/1034 - На одну задачу тут один поток, хотя есть менеджер потоков (можно как-то более гибко ими рубить) - про QThread прочитать там можно).

Тут: http://pro-prof.com/archives/1390 более четкий вариант - свой менеджер не пишется, т.к. есть в Qt стандартный пул потоков (QThreadPool), тока в него помещаются объекты, которые надо обработать (QRunnable), а Qthread в чистом виде не используется. Это более хорошо, т.к. стандартней. Но если тебе нужна какая-то особая гибкота, которой нет в стандартном QThreadPool - пили пул сам (первый вариант)

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

Ну и всякие OMP можно к Qt примотать при желании.

Последний раз редактировалось rrrFer; 27.11.2014 в 21:40.
rrrFer вне форума Ответить с цитированием
Старый 27.11.2014, 22:15   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Цитата:
Сообщение от Satansoft Посмотреть сообщение
Доброго времени, как в Qt создать массив потоков на n их количество?
Если вы сервер пишите и вам нужно какие-то вычисления делать для каждого подключившегося клиента, то вот вам пример. Протестить его можно так -> запустить сам пример -> cmd.exe -> ввести telnet -> ввести: open 127.0.0.1 1234 -> и вводить текст -> ещё запустите клиентов. А остальное по коду увидите

Это пример не мой. Перейдите по этой ссылке Выберите Qt -> пример 70 "C++ Qt 70 Advanced Asynchronous QTcpServer with QThreadPool"

Видео к примеру: http://www.youtube.com/watch?v=BWEIWViWFwI
Вложения
Тип файла: zip qt70.zip (3.5 Кб, 9 просмотров)
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
threads Satansoft Общие вопросы C/C++ 0 22.11.2014 22:23
Threads Merzaffka C/C++ Сетевое программирование 0 29.03.2011 17:31
Threads ImmortalAlexSan Помощь студентам 0 20.05.2010 18:29
Qt, Threads, Sockets... i-cpp Qt и кроссплатформенное программирование С/С++ 1 30.03.2010 02:10
Posix Threads Ghevond20 Общие вопросы C/C++ 0 12.12.2009 01:31