Russian Qt Forum
Ноябрь 22, 2024, 05:05
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Новичкам про потоки
Страниц:
1
[
2
]
3
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Новичкам про потоки (Прочитано 42816 раз)
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Новичкам про потоки
«
Ответ #15 :
Январь 11, 2017, 16:19 »
Цитата: kuzulis от Январь 11, 2017, 16:09
Цитировать
Лучше наследоваться от QObject и делать moveToThread
Цитировать
Поэтому всегда сначала задумайтесь о более простом способе: run нитки и общение с ней с помощью слот/сигнал.
Не лучше, т.к. оно (использование сигнал/слотов с moveToThread) "забивает" очередь сообщений (когда "приемник , находящийся в потоке" обрабатывает данные медленнее чем они ему передаются), в отличии от "прямого наследования от QThread".
Везде есть свои нюансы.
Некорректный пример. В этом случае в поток мувать надо приемник.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Новичкам про потоки
«
Ответ #16 :
Январь 11, 2017, 17:27 »
Цитировать
В этом случае в поток мувать надо приемник.
Дык я про приемник в потоке и говорю.
Записан
ArchLinux x86_64 / Win10 64 bit
Bepec
Гость
Re: Новичкам про потоки
«
Ответ #17 :
Январь 11, 2017, 18:43 »
Очередная тема - надо делать правильно вот так... Ну, правда можно и вот так... А ещё вот эдак... А вот тут не обойтись без этого... Ну в общем как то так делайте, но точно я вам не скажу
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Новичкам про потоки
«
Ответ #18 :
Январь 11, 2017, 19:09 »
Цитата: Пантер от Январь 11, 2017, 14:02
m_ax, ты дерзай, а я прикремплю.
Боюсь, запинают
Да и программированием я особо то и не занимаюсь, так уж, чисто балуюсь)
Цитировать
В прошлый раз Вы говорили лучше: "букварь - пойло для лохов"
Старею, да)
Цитировать
Тоже очень полезный совет (пусть и доведенный до абсурда).
Полезным он будет тогда, когда программист критически подходит к своему велосипедотворчеству. Когда сперва он проанализирует другие решения, их плюсы и минусы. И только после этого, может быть, это будет оправдано..
«
Последнее редактирование: Январь 11, 2017, 19:23 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Новичкам про потоки
«
Ответ #19 :
Январь 11, 2017, 20:08 »
Цитата: m_ax от Январь 11, 2017, 19:09
Полезным он будет тогда, когда программист критически подходит к своему велосипедотворчеству. Когда сперва он проанализирует другие решения, их плюсы и минусы. И только после этого, может быть, это будет оправдано..
А что-бы проанализировать другие решения нужно будет разобраться с какими нибудь итераторами? Не-не-не.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Новичкам про потоки
«
Ответ #20 :
Январь 11, 2017, 20:52 »
Цитировать
А что-бы проанализировать другие решения нужно будет разобраться с какими нибудь итераторами? Не-не-не.
Да-да, вот третьим пунктом как раз про итераторы и stl хотел написать, но остановился..
Это как раз другая крайность - инертность к иным (отличным) технологиям и подходам, что сегодня есть здесь и сейчас.. Та противодействующая сила эволюции, что
поддерживает
видит либо чёрное, либо белое..
«
Последнее редактирование: Январь 11, 2017, 21:58 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Новичкам про потоки
«
Ответ #21 :
Январь 12, 2017, 09:16 »
Цитата: m_ax от Январь 11, 2017, 19:09
Да и программированием я особо то и не занимаюсь, так уж, чисто балуюсь)
Я вижу
Цитата: m_ax от Январь 11, 2017, 19:09
Полезным он будет тогда, когда программист критически подходит к своему велосипедотворчеству. Когда сперва он проанализирует другие решения, их плюсы и минусы. И только после этого, может быть, это будет оправдано..
Все правильно, только есть "цена вопроса". Если я и так это легко напишу - зачем мне изучать какие-то технологии? Если вещь нужна "в году раз" - чего из-за нее бегать с какими-то бустовскими фишками? Это напрасная трата времени и памяти.
Цитата: m_ax от Январь 11, 2017, 20:52
Да-да, вот третьим пунктом как раз про итераторы и stl хотел написать, но остановился..
Это как раз другая крайность - инертность к иным (отличным) технологиям и подходам, что сегодня есть здесь и сейчас.. Та противодействующая сила эволюции, что
поддерживает
видит либо чёрное, либо белое..
Тут я что-то вообще не понял про "другую крайность". Но тоже пофилософствую. Вот есть напр эта
Задача
. Гуглению (анализу готовых решений) была посвящена не одна неделя. Тут уже не до великов, готов изучить хоть 10 дустов если поможет - но увы
Вы обладаете по меньшей мере в 10 раз бОльшими знаниями чем я - но Вам эта Задача совершенно неинтересна. Заниматься серьезными делами Вы не хотите, потому что чердак забит всяким хламом. Все эти "итераторы" да "технологии" хороши когда решение-то уже известно, и вопрос только в том как его лучше тиражировать. Но это не всегда так.
Кстати, дешевое решение там есть, правда плохого качества
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Новичкам про потоки
«
Ответ #22 :
Январь 12, 2017, 09:48 »
Цитата: Igors от Январь 12, 2017, 09:16
Вы обладаете по меньшей мере в 10 раз бОльшими знаниями чем я - но Вам эта Задача совершенно неинтересна.
У вас претензии к m_ax, что он не решает ваши задачи? Требуйте его забанить, нам такие на форуме не нужны.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Новичкам про потоки
«
Ответ #23 :
Январь 12, 2017, 09:51 »
Пиплы, давайте в этой теме не оффтопить.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Новичкам про потоки
«
Ответ #24 :
Январь 12, 2017, 10:15 »
Код
C++ (Qt)
Попробуйте использовать QRunnable
А как это работает? Не совсем понятно, чем лучше создания потока.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Новичкам про потоки
«
Ответ #25 :
Январь 12, 2017, 10:18 »
Цитата: __Heaven__ от Январь 12, 2017, 10:15
Код
C++ (Qt)
Попробуйте использовать QRunnable
А как это работает? Не совсем понятно, чем лучше создания потока.
ты создаешь потомка от QRunnable и засовываешь в пулл. Если у тебя куча мелких задачек, то это хороший вариант.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Новичкам про потоки
«
Ответ #26 :
Январь 12, 2017, 10:19 »
Цитата: __Heaven__ от Январь 12, 2017, 10:15
А как это работает? Не совсем понятно, чем лучше создания потока.
Это средний уровень, между QThread и QtConcurrent.
Вы описываете "работу" в классах-наследниках от QRunnable, а потом можете их выполнять в рабочих потоках Кютешного пула потоков QThreadPool.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Новичкам про потоки
«
Ответ #27 :
Январь 12, 2017, 10:30 »
Получается, если у меня есть класс Solver, то я просто написав run() засовываю его в поток?
Это просто является одним из способов параллелизма, так? Преимущества только в записи?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Новичкам про потоки
«
Ответ #28 :
Январь 12, 2017, 10:32 »
Нам не нужно писать свой пул потоков, достаточно описать сами работы.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Новичкам про потоки
«
Ответ #29 :
Январь 12, 2017, 10:34 »
Спасибо. С пулами не работал. Надо попробовать.
Записан
Страниц:
1
[
2
]
3
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...