python实现微秒级等待问题(windows)

 更新时间:2024年06月24日 09:08:04   作者:霸蛮哥  
这篇文章主要介绍了python实现微秒级等待问题(windows),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python实现微秒级等待

windows限制

python 的 time.sleep()方法,在windows操作系统下,最低只能实现到0.001秒,即最少等待1毫秒。

时间单位

  • 秒(second),时间单位 : s, 
  • 毫秒(millisecond),时间单位:ms 
  • 微秒(microsecond),时间单位:μs

时间换算:

  • 1s【秒】 = 1000ms【毫秒】
  • 1ms【毫秒】 = 1000μs【微秒】
  • 1μs【微秒】 = 1000ns【纳秒】
  • 1ns 【纳秒】= 1000ps【皮秒】

如何实现微秒μs级等待?

可使用time.perf_counter()方法来实现。

代码如下:

import time


def microsecond_sleep(sleep_time):
    """微秒等待

    :param sleep_time: int, 微秒
    :return:
    """

    end_time = time.perf_counter() + (sleep_time - 0.8) / 1e6  # 0.8是时间补偿,需要根据自己PC的性能去实测
    while time.perf_counter() < end_time:
        pass


start = time.perf_counter()
microsecond_sleep(10)  # 等待10微秒
end = time.perf_counter()
print(start)
print(end)
print("等待时间:", (end-start) * 1e6, "微秒")

运行结果如下:

1040204.7426661
1040204.742676
等待时间: 9.899958968162537 微秒

多次测试,实际消耗时间在9.89-10.30微秒之间。

python编程,毫秒级延时的一种实现

linux适用

import time    # 导入time模块
 
def delayMicrosecond(t):    # 微秒级延时函数
    start,end=0,0           # 声明变量
    start=time.time()       # 记录开始时间
    t=(t-3)/1000000     # 将输入t的单位转换为秒,-3是时间补偿
    while end-start<t:  # 循环至时间差值大于或等于设定值时
        end=time.time()     # 记录结束时间

a=time.time()   # 记录延时函数开始执行时的时间
delayMicrosecond(10)	#延时 35 微秒
b=time.time()   # 记录延时函数结束时的时间
print((b))
print((a))

print((b-a)*1000000)

windows适用

import time    # 导入time模块

def procedure():
    time.sleep(2.5)

# measure process time
t0 = time.process_time()
procedure()
print (time.process_time() - t0, "seconds process time")

# measure wall time
t0 = time.time()
procedure()
print (time.time() - t0, "seconds wall time")

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Pandas使用SQLite3实战

    Pandas使用SQLite3实战

    本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Python 进程之间共享数据(全局变量)的方法

    Python 进程之间共享数据(全局变量)的方法

    今天小编就为大家分享一篇Python 进程之间共享数据(全局变量)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python多线程的线程如何安全实现

    python多线程的线程如何安全实现

    在本篇文章里小编给大家整理了一篇关于python多线程的线程如何安全实现的内容,有兴趣的朋友们可以学习参考下。
    2021-08-08
  • 使用Python爬取最好大学网大学排名

    使用Python爬取最好大学网大学排名

    这篇文章主要介绍了如何使用Python爬取最好大学网大学排名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Python实现去除代码前行号的方法

    Python实现去除代码前行号的方法

    这篇文章主要介绍了Python实现去除代码前行号的方法,实例分析了Python操作字符的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • pycharm new project变成灰色的解决方法

    pycharm new project变成灰色的解决方法

    今天小编就为大家分享一篇pycharm new project变成灰色的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 基于Python中的yield表达式介绍

    基于Python中的yield表达式介绍

    今天小编就为大家分享一篇基于Python中的yield表达式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python绘图系统之自定义一个坐标设置控件

    Python绘图系统之自定义一个坐标设置控件

    这篇文章主要为大家详细介绍了Python如何编写一个绘图系统,可以实现自定义一个坐标设置控件,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-08-08
  • python新手学习使用库

    python新手学习使用库

    在本篇文章里小编给大家整理的一篇关于python新手学习使用库的相关方法和知识点,需要的朋友们参考下。
    2020-06-06
  • 基于Python实现简单的人脸识别系统

    基于Python实现简单的人脸识别系统

    这篇文章主要介绍了如何通过Python实现一个简单的人脸识别系统,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以跟随小编一起试一试
    2022-01-01

最新评论