擅长:python、mysql、java
<p>我不能百分之百地肯定jython也有同样的问题,但是在C Python中,您会遇到GIL或全局解释器锁的问题。这意味着当后台线程正在运行时,GUI线程无法启动(即使它排队在另一个内核上运行)。你点击一个按钮,什么也没有发生:(</p>
<p>为了解决这一问题,我将长时间运行的流程拆分为可以在事件上运行的短步骤,并将事件排队以在当前步骤结束时启动下一步。如果需要的话,GUI将能够在步骤之间运行。步骤越短,GUI的响应就越快-50ms到100ms应该可以。在</p>
<p>这种方法有一个很好的副作用,您不需要担心线程、锁定、消息队列或其他任何事情。您可以尝试将这些添加到GUI中,但是GUI事件和线程可能会发生冲突,从而导致一些非常奇怪和难以调试的错误。在</p>
<p>至于“最快”,这可能是较短后台任务的最低开销。如果您创建一个新进程来运行后台任务(在Windows中开销很大),那么它将运行得更快,因为它有自己的核心,但是启动/停止开销很高。在</p>