作为项目的一部分,我正在开发一个客户端,它以特定节拍(每秒消息数)发送UDP数据包,并将其作为输入。
我的Windows机器每秒最多可以发送~30K消息,所以我说我需要每秒发送4K消息,我可以计算出我需要在每条消息之间放置的延迟,所以我将发送大约每秒请求的金额,并使用time.sleep()
设置延迟。
我的问题是,当我得到每秒27K消息的数量,这实际上接近每秒最大消息量时,每条消息之间的延迟是微秒,time.sleep()
不是该单位准确。
有没有其他方法可以在python中延迟微秒?
编辑 - time.sleep()
在微秒内不准确,我需要延迟准确
答案 0 :(得分:0)
下面的代码有点长,但是可以用!只需将1/1000替换为您想要的任何东西!
class Clock:
def __init__(self, fps):
self.start = perf_counter()
self.frame_length = 1/fps
@property
def tick(self):
return int((perf_counter() - self.start)/self.frame_length)
def sleep(self):
r = self.tick + 1
while self.tick < r:
sleep(1/1000)