MyTetra Share
Делитесь знаниями!
Когда имеет смысл применять QThread::run()?
Время создания: 30.03.2023 10:57
Текстовые метки: qt, c++, потоки, многопоточность, QThread, run, метод
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Многопоточность
Запись: xintrea/mytetra_syncro/master/base/1680163050nk1ucj8dr9/text.html на raw.github.com

Вопрос:


Насколько я понимаю (и насколько написано в тексте документации) QThread::run() имеет смысл переопределять в случае, когда:


  • мы не пользуемся в данном Thread синалами и слотами
  • мы сделали какой-то свой механизм остановки
  • мы сделали какой-то (свой) механизм синхронизации, чтобы этот run() не молотил бы непрерывно


Вроде бы — в таком случае все ок?



Ответ 1:


В таком случае — да. Можно даже поддержку signal/slot реализовать сравнительно простыми усилиями. Но это определенное велосипедостроительство, «канонически» в Qt предполагается паттерн Actors в котором работу делают QObject-ы в ответ на сигналы.



Ответ 2:


В таком случае есть другая проблема: obj не может сам останавливать свой поток. А если логике не надо управлять потоком, то надо использовать greenthread и прочие очереди выполнения.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования