【问题标题】:Is Python's time.monotonic() consistent across multiple threads?Python 的 time.monotonic() 在多个线程中是否一致?
【发布时间】:2020-02-08 21:19:53
【问题描述】:

time.monotonic() 的 Python 文档指出:

返回单调时钟的值(以秒为单位),即不能倒退的时钟。时钟不受系统时钟更新的影响。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异才有效。

3.3 版中的新功能。

在 3.5 版中更改:该功能现在始终可用并且始终在系统范围内。

最后一句是否暗示对于 Python >= 3.5,time.monotonic() 返回的值可以安全地使用并跨多个线程进行比较?

【问题讨论】:

    标签: python-3.x time python-multithreading


    【解决方案1】:

    我遇到了同样的问题,似乎 NO ,线程之间的差异约为 10 微秒。

    我使用的是 Linux,Python 3.7.5,内核 5.3.0-40-generic,CPU AMD Ryzen 5 3600

    【讨论】:

    • 你是如何衡量这个的? 10 微秒在使用队列或标准输出收集结果时的抖动范围内。
    • 两个线程都将 monotonic() 函数的结果存储到字典中。一个发送 ICMP ping,另一个收到它。在 ping localhost 时,接收方的单调结果是在发送方发送之前 10 微秒。单调调用是在实际数据包发送之前和选择调用之后的接收端。
    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 2022-11-11
    • 2018-10-29
    • 2022-09-23
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多