title: Threading in a PyQt application: Use Qt threads or Python threads?
body: <p>I'm writing a GUI application that regularly retrieves data through a web connection. Since this retrieval takes a while, this causes the UI to be unresponsive during the retrieval process (it cannot be split into smaller parts). This is why I'd like to outsource the web connection to a separate worker thread.</p>
  
  <p>[Yes, I know, now I have <a href="http://codemines.blogspot.com/2006/08/now-they-have-two-problems.html" rel="noreferrer">two problems</a>.]</p>
  
  <p>Anyway, the application uses PyQt4, so I'd like to know what the better choice is: Use Qt's threads or use the Python <code>threading</code> module? What are advantages / disadvantages of each? Or do you have a totally different suggestion?</p>
  
  <p><strong>Edit (re bounty):</strong> While the solution in my particular case will probably be using a non-blocking network request like <a href="https://stackoverflow.com/questions/1595649/threading-in-a-pyqt-application-use-qt-threads-or-python-threads/1595690#1595690">Jeff Ober</a> and <a href="https://stackoverflow.com/questions/1595649/threading-in-a-pyqt-application-use-qt-threads-or-python-threads/1595754#1595754">Lukáš Lalinský</a> suggested (so basically leaving the concurrency problems to the networking implementation), I'd still like a more in-depth answer to the general question:</p>
  
  <p>What are advantages and disadvantages of using PyQt4's (i.e. Qt's) threads over native Python threads (from the <code>threading</code> module)?</p>
  
  <hr>
  
  <p><strong>Edit 2:</strong> Thanks all for you answers. Although there's no 100% agreement, there seems to be widespread consensus that the answer is "use Qt", since the advantage of that is integration with the rest of the library, while causing no real disadvantages.</p>
  
  <p>For anyone looking to choose between the two threading implementations, I highly recommend they read all the answers provided here, including the PyQt mailing list thread that <a href="https://stackoverflow.com/questions/1595649/threading-in-a-pyqt-application-use-qt-threads-or-python-threads/1645666#1645666">abbot</a> links to.</p>
  
  <p>There were several answers I considered for the bounty; in the end I chose abbot's for the very relevant external reference; it was, however, a close call.</p>
  
  <p>Thanks again.</p>