确实,说实话, 还没有一个完全通用的解决方案。您必须为给定的域使用正确的解决方案。
如果您希望完全控制的代码超时,则必须编写代码以配合使用。这样的代码必须能够以某种方式分解成小块,例如在事件驱动的系统中。如果可以确保没有什么东西可以长时间持有锁,那么您也可以通过线程执行此操作,但是正确处理锁实际上非常困难。
如果由于担心代码失控而想要超时(例如,如果担心用户会要求计算器进行计算
9**(9**9)
),则需要在另一个进程中运行它。这是充分隔离它的唯一简便方法。在事件系统甚至其他线程中运行它是不够的。与其他解决方案类似,也可以将其分解为小块,但需要非常小心的处理,通常不值得。无论如何,这不允许您执行与仅运行Python代码相同的操作。



