Уведомления

Группа в Telegram: @pythonsu

#1 Июль 21, 2019 22:52:00

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Не могу убить поток QThread

@cckyi_boxxx есть все же мнение чть это некошерно, py.user.next уже давал ссылку на статью по этой теме, если английским туго можно прочитать статью по мотивам



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 21, 2019 22:54:07)

Офлайн

#2 Июль 22, 2019 01:41:32

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

Не могу убить поток QThread

PEHDOM, читал, однако нашел Qthread более предпочтительным для тех задач от которых в том посте отговаривают, я конечно могу ошибаться но тут нет совокуплений с GIL, я пришел к такому выводу когда на практике использовал потоки из стандартной либы (Threading и _thread) , в связи с тем что они оперировали данными из основного потока при большом количестве потоков гуй подвисал, а с QThread такого не наблюдалось. Понятное дело что мою задачу можно было решить иначе, но мне так удобнее. (в проекте всего около 30 - 50 потоков с циклами while True и обработкой данных внутри)

Что до приведенного мной примера, просто захотел сказать что пилить отдельный класс не обязательно, иногда удобнее отправить какой-либо отдельный метод в поток, и с QThread это прокатывает.

И наконец в статье не дается конкретных примеров возможных проблем при таком использовании QThread, одни лишь рекомендации возведенные в абсолют.

Из наблюдений могу добавить еще одну особенность, если не отлавливать в QThread ошибки то при их возникновении падает вся программа, поэтому у меня весь код функции после ее дебага помещается под try - except: run() для надежности, на случай ошибок которые я не смог предусмотреть. В этом плане “стандартные” потоки лучше, упал поток а софт живет.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version