擅长:python、mysql、java
<p><code>threading.Timer</code>类<em>确实有一个<code>cancel</code>方法,尽管它不会取消<em>线程</em>,但它会停止计时器的实际触发。实际发生的情况是,<code>cancel</code>方法设置了一个<code>threading.Event</code>,而实际执行<code>threading.Timer</code>的线程将在完成等待之后和实际执行回调之前检查该事件。</p>
<p>也就是说,计时器通常是在不使用单独线程的情况下实现的。最好的方法取决于你的程序实际在做什么(在等待这个计时器的时候),但是任何有事件循环的东西,比如GUI和网络框架,都有方法请求一个连接到事件循环的计时器。</p>