这些时钟相同吗? time.monotonic()
和asyncio.get_event_loop().time()
。我的系统上似乎是这种情况,但是除了这句话外,我找不到任何相关文档:
事件循环使用单调时钟来跟踪时间。
但是,这并不意味着这两个时钟具有相同的绝对值。
答案 0 :(得分:2)
是的,就是这样实现的:
class BaseEventLoop(events.AbstractEventLoop):
(...)
def time(self):
"""Return the time according to the event loop's clock.
This is a float expressed in seconds since an epoch, but the
epoch, precision, accuracy and drift are unspecified and may
differ per event loop.
"""
return time.monotonic()
请注意,这适用于默认事件循环。 asyncio.get_event_loop()
可以被覆盖以返回其他实现。
答案 1 :(得分:1)
但是,这并不意味着这两个时钟具有相同的绝对值。
正确,实际上它的说法恰恰相反,即事件循环可以使用任何单调时钟。 当前实现只是调用time.monotonic()
(未记录),但是将来可能会改用更高效的时钟,该时钟返回的值与time.monotonic()
返回的值不同
话虽如此,请注意,这种转换不太可能发生,但就loop.time()
合同而言,是允许的。