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

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

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: Новичкам про потоки  (Прочитано 38916 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #15 : Январь 11, 2017, 16:19 »

Цитировать
Лучше наследоваться от QObject и делать moveToThread
Цитировать
Поэтому всегда сначала задумайтесь о более простом способе: run нитки и общение с ней с помощью слот/сигнал.

Не лучше, т.к. оно (использование сигнал/слотов с moveToThread) "забивает" очередь сообщений (когда "приемник , находящийся в потоке" обрабатывает данные медленнее чем они ему передаются), в отличии от "прямого наследования от QThread".

Везде есть свои нюансы.
Некорректный пример. В этом случае в поток мувать надо приемник. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #16 : Январь 11, 2017, 17:27 »

Цитировать
В этом случае в поток мувать надо приемник.

Дык я про приемник в потоке и говорю.
Записан

ArchLinux x86_64 / Win10 64 bit
Bepec
Гость
« Ответ #17 : Январь 11, 2017, 18:43 »

Очередная тема - надо делать правильно вот так... Ну, правда можно и вот так... А ещё вот эдак... А вот тут не обойтись без этого... Ну в общем как то так делайте, но точно я вам не скажу Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #18 : Январь 11, 2017, 19:09 »

m_ax, ты дерзай, а я прикремплю. Смеющийся
Боюсь, запинают  Улыбающийся

Да и программированием я особо то и не занимаюсь, так уж, чисто балуюсь)  

Цитировать
В прошлый раз Вы говорили лучше: "букварь - пойло для лохов"   Улыбающийся
Старею, да)

Цитировать
Тоже очень полезный совет (пусть и доведенный до абсурда).
Полезным он будет тогда, когда программист критически подходит к своему велосипедотворчеству. Когда сперва он проанализирует другие решения, их плюсы и минусы. И только после этого, может быть, это будет оправдано.. 
« Последнее редактирование: Январь 11, 2017, 19:23 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #19 : Январь 11, 2017, 20:08 »

Полезным он будет тогда, когда программист критически подходит к своему велосипедотворчеству. Когда сперва он проанализирует другие решения, их плюсы и минусы. И только после этого, может быть, это будет оправдано.. 
А что-бы проанализировать другие решения нужно будет разобраться с какими нибудь итераторами? Не-не-не. Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #20 : Январь 11, 2017, 20:52 »

Цитировать
А что-бы проанализировать другие решения нужно будет разобраться с какими нибудь итераторами? Не-не-не.  Улыбающийся
Да-да, вот третьим пунктом как раз про итераторы и stl хотел написать, но остановился..  Улыбающийся
Это как раз другая крайность - инертность к иным (отличным) технологиям и подходам, что сегодня есть здесь и сейчас.. Та противодействующая сила эволюции, что поддерживает видит либо чёрное, либо белое..
« Последнее редактирование: Январь 11, 2017, 21:58 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #21 : Январь 12, 2017, 09:16 »

Да и программированием я особо то и не занимаюсь, так уж, чисто балуюсь)  
Я вижу Улыбающийся

Полезным он будет тогда, когда программист критически подходит к своему велосипедотворчеству. Когда сперва он проанализирует другие решения, их плюсы и минусы. И только после этого, может быть, это будет оправдано.. 
Все правильно, только есть "цена вопроса". Если я и так это легко напишу - зачем мне изучать какие-то технологии? Если вещь нужна "в году раз" - чего из-за нее бегать с какими-то бустовскими фишками? Это напрасная трата времени и памяти.

Да-да, вот третьим пунктом как раз про итераторы и stl хотел написать, но остановился..  Улыбающийся
Это как раз другая крайность - инертность к иным (отличным) технологиям и подходам, что сегодня есть здесь и сейчас.. Та противодействующая сила эволюции, что поддерживает видит либо чёрное, либо белое..
Тут я что-то вообще не понял про "другую крайность". Но тоже пофилософствую. Вот есть напр эта Задача. Гуглению (анализу готовых решений) была посвящена не одна неделя. Тут уже не до великов, готов изучить хоть 10 дустов если поможет - но увы Плачущий Вы обладаете по меньшей мере в 10 раз бОльшими знаниями чем я - но Вам эта Задача совершенно неинтересна. Заниматься серьезными делами Вы не хотите, потому что чердак забит всяким хламом. Все эти "итераторы" да "технологии" хороши когда решение-то уже известно, и вопрос только в том как его лучше тиражировать. Но это не всегда так.

Кстати, дешевое решение там есть, правда плохого качества
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #22 : Январь 12, 2017, 09:48 »

Вы обладаете по меньшей мере в 10 раз бОльшими знаниями чем я - но Вам эта Задача совершенно неинтересна.
У вас претензии к m_ax, что он не решает ваши задачи? Требуйте его забанить, нам такие на форуме не нужны. Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #23 : Январь 12, 2017, 09:51 »

Пиплы, давайте в этой теме не оффтопить.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #24 : Январь 12, 2017, 10:15 »

Код
C++ (Qt)
Попробуйте использовать QRunnable
А как это работает? Не совсем понятно, чем лучше создания потока.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #25 : Январь 12, 2017, 10:18 »

Код
C++ (Qt)
Попробуйте использовать QRunnable
А как это работает? Не совсем понятно, чем лучше создания потока.
ты создаешь потомка от QRunnable и засовываешь в пулл. Если у тебя куча мелких задачек, то это хороший вариант.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #26 : Январь 12, 2017, 10:19 »

А как это работает? Не совсем понятно, чем лучше создания потока.
Это средний  уровень, между QThread и QtConcurrent.
Вы описываете "работу" в классах-наследниках от QRunnable, а потом можете их выполнять в рабочих потоках Кютешного пула потоков QThreadPool.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #27 : Январь 12, 2017, 10:30 »

Получается, если у меня есть класс Solver, то я просто написав run() засовываю его в поток?
Это просто является одним из способов параллелизма, так? Преимущества только в записи?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #28 : Январь 12, 2017, 10:32 »

Нам не нужно писать свой пул потоков, достаточно описать сами работы.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #29 : Январь 12, 2017, 10:34 »

Спасибо. С пулами не работал. Надо попробовать.
Записан
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


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