我正在研究一个程序,该程序涉及每3.6秒向API发送一次请求。为了以最有效的方式做到这一点,我运行了两个线程,一个线程执行睡眠3.6秒,另一个线程发送API请求。但是,尽管其中一个线程处于休眠状态,但似乎两个线程都可以在3.6秒内正常完成。是某种精度错误,我没有看到的由Python完成的优化还是导致此问题的其他问题?
我知道我可以通过将睡眠时间简单地延长几毫秒来解决此问题,但是我宁愿精确地并且以“正确的方式”完成它。
while len(sitelist[1]) > 0:
t = time.time()
t1 = threading.Thread(target=phishProcessing, args=(input, sitelist, output))
t2 = threading.Thread(target=stdSleep)
t1.start()
t2.start()
t1.join()
t2.join()
if time.time() - t <= 3.6:
print("Error, time taken less than thread: ",time.time() - t)
睡眠方法如下:
def stdSleep():
time.sleep(3.6)
return 0
我希望这段代码能做什么:
这是程序的实际输出:https://imgur.com/a/KBhTuCG
似乎线程在1到2毫秒之间完成得太早了。