如何确定线程完成的最短时间?
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 伪代码。
我正在使用多线程从网站下载视频,但有时如果视频太小,程序启动另一个线程的速度太快,服务器会阻止我的请求。
我不想使用 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 伪代码。