Вы имеете в виду, что цикл while запускается перед потоком? Ну, вы не можете предсказать это, если вы не синхронизируете это. Никто не гарантирует вам, что поток будет работать до или после этого цикла while. Но если он заблокирован на 5 секунд, это нехорошо - к этому моменту поток должен быть прерван.
Кроме того, поскольку вы впервые используете wantToQuit в методе run (), никто не гарантирует, что поток запущен, когда вы проверяете его атрибут wantToQuit в while not myThread.wantToQuit
.