Потоки в приложении PyQt: использовать потоки Qt или потоки Python?

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

Я пишу приложение с графическим интерфейсом, которое регулярно извлекает данные через веб-соединение. Поскольку это извлечение занимает некоторое время, это приводит к тому, что пользовательский интерфейс не отвечает во время процесса извлечения (его нельзя разделить на более мелкие части). Вот почему Я бы хотел передать веб-соединение отдельному рабочему потоку.

[Да, я знаю, теперь у меня есть две проблемы.]

В любом случае, приложение использует PyQt4, поэтому я хотел бы знать, что лучше выбор: использовать потоки Qt или использовать модуль Python threading? Каковы преимущества/недостатки каждого? Или у вас есть совершенно другое предложение?

Редактировать (re bounty): Хотя решение в моем конкретном случае, вероятно, будет использовать неблокирующий сетевой запрос, такой как Джефф Обер и Лук√°≈° Лалинск√Ω (поэтому в основном оставляя проблемы параллелизма на сетевую реализацию), я все же хотел бы получить более подробный ответ на общий вопрос:

Каковы преимущества и недостатки использования PyQt4" s (т. е. Qt's) над родными потоками Python (из модуля threading)?


Редактировать 2: Спасибо всем за вас ответов. Хотя нет стопроцентного согласия, кажется, широко распространено мнение, что ответ «использовать Qt», поскольку преимущество этого является интеграцией с остальной библиотекой, не вызывая при этом реальных недостатков.

Всем, кто хочет выбрать между двумя реализациями многопоточности, я настоятельно рекомендую прочитать все представленные здесь ответы, включая ветку списка рассылки PyQt. что аббат ссылки на.

Было несколько ответов, которые я рассматривал для награды; в конце концов я выбрал Abbot's из-за очень актуальной внешней ссылки, однако это было близко к сердцу.

Еще раз спасибо.