4

GUI Python アプリケーションに SQLite を使用したいのですが、プログラムのパフォーマンスに影響を与えることなく、500 MS ごとにデータベースを更新する必要があります。

私はPyQt4を使っているので、QThreadを使おうと思ったのですが、扱いが難しそうなので、本当に理解する前に、それが最善の方法であるかどうか疑問に思いました。

私の質問は: QThread が最善の方法ですか、それとも他の方法がありますか?</p>

4

1 に答える 1

1

Python の実装がGILに依存しているという事実によると、スレッドやタイマーを使用しても、プログラムの全体的なパフォーマンスに影響を与えずに、プログラムで何か (潜在的にコストがかかる) を行うことはできません。

この制限を回避するには、マルチプロセッシングモジュールを参照することをお勧めします。このモジュールを使用すると、スレッド (GIL の影響を受ける) は使用されなくなりますが、プロセス (GIL の影響を受けない) は使用されなくなります。

メイン プロセスがジョブを続行するときに、500 ミリ秒ごとに更新を行うようにタイマーを設定するサブプロセスを作成することもできます。

次に、システムにプログラムのバランスをとる仕事を任せると、応答性の点で改善される場合があります (特にマルチコア環境で)。

于 2012-01-02T09:12:00.230 に答える