多くのxmlファイルを読み込んで解析する必要があるpyqt4でアプリを作成しています。シングルスレッドで実行すると、そのすべての解析を実行し、その着信 xml に対応する何千もの Python オブジェクトを作成するのに時間がかかります。コードのプロファイリングを行ったところ、I/O ではなくコンピューティングにバインドされていることがわかりました。
ワーカー ファーム モデル (Python の?Process.Pool) を使用して、アプリケーションをマルチコア モデルに変換して負荷を分散させたいと考えています。
ただし、ワーカーから進行状況を通知して GUI を更新できるようにしたいと考えています。
これまで読んだことから、QThreadはマルチコア対応ではないように思えますが(1つのコアでラウンドロビンするため)、Signalを実行するにはQThreadが必要なので、基本的にはできません。
ワーカーからのシグナルを必要とせず、ファーマーからのみのシグナルを送信する必要がないように手配できるかもしれません。これは、続行できることを意味するかもしれませんが、疑問に思うのは、あるプロセスから別のプロセスに Python オブジェクトのリストを返すことができるかということです。