如何确定线程完成的最短时间?

How do I establish a minimum time for thread completion?

我正在使用多线程从网站下载视频,但有时如果视频太小,程序启动另一个线程的速度太快,服务器会阻止我的请求。

我不想使用 time.sleep,因为这会减慢不需要减慢速度的请求。

所以基本上我需要一个命令来建立最短执行时间,比如。

伪代码

minimum time = 20 seconds
If thread ended has been completed faster than minimum time:
     wait until minimum time has been reached

无需尝试过于复杂的方法来实现此目的,您可以 a) 在线程启动时启动计时器 b) 当线程结束时,仅休眠达到最短持续时间所需的剩余时间:

start = ...
<threading code>
duration = now() - start
if duration < minimum:
    time.sleep(minimum - duration)

这基本上是您问题中的 less-pseudo 伪代码。