我需要能够在后台调用一个函数而不会冻结控制台。我有多线程的经验,但我更喜欢它按顺序完成任务。最好的方法是什么?非常感谢示例代码,因为英语不是我的第一语言。
我正在使用经过大量修改的pyttsx版本,因此当调用特定函数时,它会执行SAPI调用,冻结控制台。我希望能够拨打speak.main(decrypt(data))
,并且能够在我的电脑正在讲话时继续输入数据。
答案 0 :(得分:1)
我的建议是拥有两个线程,一个说话线程和一个控制台线程。在两者之间共享一个队列,当需要说出新数据时,将其推送到队列中。说话线程空闲队列是空的,如果没有,它会弹出一个值并说话。