微秒延迟

时间:2017-09-17 06:28:05

标签: python udp

作为项目的一部分,我正在开发一个客户端,它以特定节拍(每秒消息数)发送UDP数据包,并将其作为输入。

我的Windows机器每秒最多可以发送~30K消息,所以我说我需要每秒发送4K消息,我可以计算出我需要在每条消息之间放置的延迟,所以我将发送大约每秒请求的金额,并使用time.sleep()设置延迟。

我的问题是,当我得到每秒27K消息的数量,这实际上接近每秒最大消息量时,每条消息之间的延迟是微秒,time.sleep()不是该单位准确。
有没有其他方法可以在python中延迟微秒?

编辑 - time.sleep()在微秒内不准确,我需要延迟准确

1 个答案:

答案 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)