在后台调用python函数

时间:2013-06-04 12:17:32

标签: python multithreading function python-2.7 freeze

问题

我需要能够在后台调用一个函数而不会冻结控制台。我有多线程的经验,但我更喜欢它按顺序完成任务。最好的方法是什么?非常感谢示例代码,因为英语不是我的第一语言。

背景资料(特定于我的问题)

我正在使用经过大量修改的pyttsx版本,因此当调用特定函数时,它会执行SAPI调用,冻结控制台。我希望能够拨打speak.main(decrypt(data)),并且能够在我的电脑正在讲话时继续输入数据。

1 个答案:

答案 0 :(得分:1)

我的建议是拥有两个线程,一个说话线程和一个控制台线程。在两者之间共享一个队列,当需要说出新数据时,将其推送到队列中。说话线程空闲队列是空的,如果没有,它会弹出一个值并说话。