4

我想将 SQLite 用于我的 GUI Python 应用程序,但我必须每 500 毫秒更新一次数据库,而不会影响程序的性能。

我正在使用PyQt4,所以我考虑过使用QThread,但它似乎很难处理,所以在真正尝试理解它之前我想知道它是否是最好的方法。

我的问题是:QThread 是最好的方法还是有其他方法?</p>

4

1 回答 1

1

根据 python 实现依赖GIL的事实,即使使用线程或计时器,您也无法在不影响程序全局性能的情况下在程序中执行某些操作(可能成本高昂)。

我建议你看看多处理模块来解决这个限制。使用此模块,您将不再使用线程(受 GIL 影响),而是使用进程(不受 GIL 影响)。

也许您可以创建一个子进程,当主进程将继续他的工作时,它将武装一个计时器以每 500 毫秒进行一次更新。

然后,您将让系统完成平衡程序的工作,并且在响应性方面可能会更好(尤其是在多核环境中)

于 2012-01-02T09:12:00.230 回答