С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Satansoft
19 / 15 / 6
Регистрация: 27.02.2012
Сообщений: 737
1

Qthread (ликбез)

25.11.2014, 20:46. Просмотров 675. Ответов 4
Метки нет (Все метки)

Задача:
20 детей едят из одной миски, в которой 100 слив, когда ребенок хочет кушать, он берёт из миски одну сливу, только если миска не пуста, если же пуста - зовёт маму, чтобы та наполнила её (соотвественно 100 слив), создать многопоточное приложение, реализующее задачу.

Итерпретация в алгоритм:
20 потоков в цикле получают поочередно доступ к переменной декрементируя её, когда та становится равной 0, запускается поток, переинициализирующий её на начальное значение.

Проект состоит из 2 классов, один унаследован от MainWindow, другой - от Qthread, в документации потоковая функция - представлена как run(), однако мне надо минимум 2 функции, обое run()?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2014, 20:46
Ответы с готовыми решениями:

QThread
Добрый вечер. Работаю с приложением реального времени, использую набор...

QThread
Здравствуйте! Есть три разных потока (3 класса унаследованных от QThread)....

QThread
Всем день добрый! Есть программка, которая при загрузке должна расшифровать...

QThread
Доброго времени суток. Собственно вопрос. Метод (код ниже) создает...

QThread
Всем доброго времени суток. Пишу IDE и нужно научиться останавливать...

4
alexey_rage
591 / 391 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
25.11.2014, 23:27 2
run() - виртуальная функция. Ее нельзя переопределять дважды.
0
Satansoft
19 / 15 / 6
Регистрация: 27.02.2012
Сообщений: 737
25.11.2014, 23:30  [ТС] 3
Цитата Сообщение от alexey_rage Посмотреть сообщение
run() - виртуальная функция. Ее нельзя переопределять дважды.
Можно ли ещё одну одну потоковую функцию определить в этом классе или только создав ещё один класс?

У меня, по алгоритму, потоковая функция n к-во раз вызывает метод класса в котором, в зависимости от условия должен создаться поток, который переинициализирует переменную.
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.11.2014, 23:32 4
Цитата Сообщение от Satansoft Посмотреть сообщение
в документации потоковая функция - представлена как run(), однако мне надо минимум 2 функции, обое run()?
Вам нужно что бы в потоке можно было запускать две функции параллельно или последовательно?

http://mayaposch.wordpress.com/2011/...l-explanation/
0
Satansoft
19 / 15 / 6
Регистрация: 27.02.2012
Сообщений: 737
26.11.2014, 00:24  [ТС] 5
RazrFalcon, скорее последовально...

Потоковая функция run() в себе вызывает обыкновенный метод класса diiner(), в котором декрементируется переменная, когда та становится равной 0, dinner() порождает ещё один поток, который переинициализирует переменную и run() продолжает своё шествие.. в С++11 это делалось просто, а тут как?

Добавлено через 35 минут
Ладно, пусть на класс можно создать один лишь потоковый метод run(), но как его выполнить 20 раз, к примеру?

объявлен он у меня в секции public класса MainWindow (то есть графики)

C++ (Qt)
1
Cannibals *CanCan;
а вызывается из кнопки

C++ (Qt)
1
2
3
4
5
6
void MainWindow::on_pushButton_clicked()
{
 
    CanCan->start();
    ui->listWidget->clear();
}
пробовал в кнопке,но не работает

C++ (Qt)
1
2
    for(int i=0;i<N;i++){
    CanCan->start();}
0
26.11.2014, 00:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2014, 00:24

QThread
Добрый день! Почитал про класс QThread. В документации написано, что для того...

QThread и QNetworkReply
Лишние куски кода вырезал cNet.h #include &lt;QtGui&gt; #include...

QThread и гуи
Всем здравствуйте. Требуется помощь с QThread. Ситуация такая. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru