Если Вы часто используете GUI в Python, тогда Вы знаете, что иногда требуется запускать процессы, выполняющиеся значительное время. И, если Вы реализуете это так же, как делаете в программах для командной строки, Вы будете очень удивлены. В большинстве случаев, Вы увидите просто "зависшую" программу, так как цикл обработки событий будет ждать завершения вашей длительной процедуры. Что в таком случае можно сделать? Запустить эту задачу в отдельной нити или в отдельном процессе! Этим мы с Вами сейчас и займёмся!