擅长:python、mysql、java
<p>当我第一次学习python多线程时,我遇到同样的问题的次数已经超过了我可以倒数的次数。</p>
<p>在循环中添加sleep调用将使您的主线程阻塞,这将允许它仍然听到并接受异常。您要做的是利用<code>Event</code>类在子线程中设置一个事件,该事件将用作中断执行的退出标志。您可以在<code>KeyboardInterrupt</code>异常中设置此标志,只需将该异常的except子句放在主线程中。</p>
<p>我不完全确定python特定的sleep和被称为one的os之间的不同行为是怎么回事,但是我提供的补救方法应该能达到您所期望的最终结果。只是猜测一下,名为one的操作系统可能会以不同的方式阻塞解释器本身?</p>
<p>请记住,通常在需要线程的大多数情况下,主线程将继续执行<em>某些</em>操作,在这种情况下,您的简单示例中的“休眠”将被隐含。</p>
<p><a href="http://docs.python.org/2/library/threading.html#event-objects" rel="nofollow">http://docs.python.org/2/library/threading.html#event-objects</a></p>