Estou escrevendo um aplicativo GUI que regularmente recupera dados por meio de uma conexão da web. Como essa recuperação demora um pouco, isso faz com que a IU pare de responder durante o processo de recuperação (não pode ser dividida em partes menores). É por isso que eu gostaria de terceirizar a conexão da web para um thread de trabalho separado.
[Sim, eu sei, agora tenho dois problemas .]
Enfim, o aplicativo usa PyQt4, então gostaria de saber qual é a melhor escolha: Usar threads do Qt ou usar o threading
módulo Python ? Quais são as vantagens / desvantagens de cada um? Ou você tem uma sugestão totalmente diferente?
Edit (re bounty): Embora a solução em meu caso particular provavelmente seja usar uma solicitação de rede sem bloqueio, como Jeff Ober e Lukáš Lalinský sugeriram (então, basicamente, deixando os problemas de simultaneidade para a implementação de rede), ainda gostaria de mais resposta aprofundada à questão geral:
Quais são as vantagens e desvantagens de usar threads de PyQt4 (ou seja, Qt) em vez de threads de Python nativos (do threading
módulo)?
Editar 2: Obrigado a todos por suas respostas. Embora não haja 100% de concordância, parece haver um consenso geral de que a resposta é "use Qt", já que a vantagem disso é a integração com o resto da biblioteca, embora não cause desvantagens reais.
Para qualquer um que queira escolher entre as duas implementações de threading, recomendo fortemente que leiam todas as respostas fornecidas aqui, incluindo o thread da lista de discussão PyQt para o qual o abade se vincula.
Houve várias respostas que considerei para a recompensa; no final, escolhi o abade para a referência externa muito relevante; foi, no entanto, uma decisão difícil.
Obrigado novamente.