title: When to use QThread::exec()
body: <p>I've checked a satisfying explanation but could not find. Usually docs mention that in order to use signals/slots between threads, we need to use event loops and start them by calling exec.</p>
  
  <p>However I can see that w/o using exec(), I can still send signals and handle them across threads.</p>
  
  <p>What's the exact use of it?</p>