@TemaKam

QThread (вместо threading) устраняет конфликты обновления интерфейса?

При использовании threading и изменении, например, значения label в потоках (счетчик, который на +1 увеличивается и т.д.) - могут ведь возникнуть ситуации, когда 2 потока одновременно прибавят к 1 числу и в итоге число изменится на +1, а не на +2?

А если использовать QThread, то такого не будет, верно?

И еще бы какой-нибудь нормальный пример для QThread, на создание потока, передачу в него функции и аргументов к ней... нужно ли для завершения потоков что-то писать, или они сами завершаются, когда функция закончит выполнение?
ведь я так понял, нельзя, как в threading, просто запустить поток QThread с target=функция, args=аргументы, и всё
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
QThread - это просто интерфейс к потоку операционной системы, так же как питонячий Thread. Оба они одинаково приводят к гонкам, взаимоблокировкам и тому подобному. И компоненты графического интерфейса не являются потокобезопасными, попытка обращаться к ним из разных потоков может привести к крашу приложения и его непредсказуемому поведению.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы