擅长:python、mysql、java
<p>线程的工作方式是另一个线程不开始,除非另一个线程当前不工作,因此另一个线程在60秒后不会开始,除非另一个线程完成。你能做什么
<a href="https://i.stack.imgur.com/KmBA6.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KmBA6.png" alt="a function without threads"/></a>
这个程序有两个时间。睡眠()函数,例如,如果有代码</p>
<pre><code>def stuff():
print('hello threads')
time.sleep(1)
print('done')
stuff()
stuff()
</code></pre>
<p>但是如果您使用线程,它看起来更像
<a href="https://i.stack.imgur.com/BAIBC.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/BAIBC.png" alt="inner workings of threads"/></a>
如果你仔细观察,你会发现下一个函数就在另一个开始睡眠时开始。线程不会同时运行,其中一个线程可以运行,但两个线程不能同时运行,这将是多进程的。
在代码中使用的是<code>threading.Timer()</code>函数。问题是两个线程不能同时运行。如果你想要这个功能,你必须重构你的代码。您可以决定在使用<strong>时间模块时要使用线程的函数中设置时间限制,使其在60秒后休眠,以便其他线程可以启动</p>
<p>尽管我建议不要这样做,因为如果您对它有些陌生的话,当涉及到可维护性时,它可能会很快失控。你知道吗</p>