GUI Python アプリケーションに SQLite を使用したいのですが、プログラムのパフォーマンスに影響を与えることなく、500 MS ごとにデータベースを更新する必要があります。
私はPyQt4を使っているので、QThreadを使おうと思ったのですが、扱いが難しそうなので、本当に理解する前に、それが最善の方法であるかどうか疑問に思いました。
私の質問は: QThread が最善の方法ですか、それとも他の方法がありますか?</p>
GUI Python アプリケーションに SQLite を使用したいのですが、プログラムのパフォーマンスに影響を与えることなく、500 MS ごとにデータベースを更新する必要があります。
私はPyQt4を使っているので、QThreadを使おうと思ったのですが、扱いが難しそうなので、本当に理解する前に、それが最善の方法であるかどうか疑問に思いました。
私の質問は: QThread が最善の方法ですか、それとも他の方法がありますか?</p>
Python の実装がGILに依存しているという事実によると、スレッドやタイマーを使用しても、プログラムの全体的なパフォーマンスに影響を与えずに、プログラムで何か (潜在的にコストがかかる) を行うことはできません。
この制限を回避するには、マルチプロセッシングモジュールを参照することをお勧めします。このモジュールを使用すると、スレッド (GIL の影響を受ける) は使用されなくなりますが、プロセス (GIL の影響を受けない) は使用されなくなります。
メイン プロセスがジョブを続行するときに、500 ミリ秒ごとに更新を行うようにタイマーを設定するサブプロセスを作成することもできます。
次に、システムにプログラムのバランスをとる仕事を任せると、応答性の点で改善される場合があります (特にマルチコア環境で)。