Threading in een PyQt-toepassing: Qt-threads of Python-threads gebruiken?

| | | | | | | | | | | | | | | | | | | |

Ik ben een GUI-toepassing aan het schrijven die regelmatig gegevens ophaalt via een internetverbinding. Aangezien dit ophalen enige tijd duurt, reageert de gebruikersinterface niet tijdens het ophaalproces (deze kan niet in kleinere delen worden opgesplitst). Dit is de reden waarom Ik wil de internetverbinding uitbesteden aan een aparte werkthread.

[Ja, ik weet het, nu heb ik twee problemen.]

Hoe dan ook, de applicatie gebruikt PyQt4, dus ik zou graag willen weten hoe keuze is: Qt's threads gebruiken of de Python threading module gebruiken? Wat zijn voor/nadelen van elk? Of heb je een totaal andere suggestie?

Bewerken (re bounty): Hoewel de oplossing in mijn specifieke geval waarschijnlijk een niet-blokkerende netwerkaanvraag zal zijn, zoals Jeff Ober en Lukáš Lalinský suggereerde (dus eigenlijk de gelijktijdigheidsproblemen overlatend aan de netwerkimplementatie), zou ik toch graag een meer diepgaand antwoord willen op de algemene vraag:

Wat zijn voor- en nadelen van het gebruik van PyQt4" s (dwz Qt's) threads over native Python-threads (van de module threading)?


Bewerken 2: Bedankt allemaal voor jullie Hoewel er geen 100% overeenstemming is, lijkt er een brede consensus te bestaan dat het antwoord "gebruik Qt" is, aangezien het voordeel daarvan is integratie met de rest van de bibliotheek, terwijl het geen echte nadelen veroorzaakt.

Iedereen die wil kiezen tussen de twee threading-implementaties, raad ik ten zeerste aan om alle antwoorden hier te lezen, inclusief de PyQt-mailinglijstthread die abt links naar.

Er waren verschillende antwoorden die ik in overweging nam voor de premie; uiteindelijk koos ik abt's voor de zeer relevante externe referentie; het was echter een close call.

Nogmaals bedankt.