V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
596164296
V2EX  ›  Python

Python 不同程序 time 时间差异问题

  •  
  •   596164296 · 114 天前 · 1173 次点击
    这是一个创建于 114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景:现在有两个程序,一个程序的运行需要依靠另一个程序的运算结果方可正常运行,如果集成到一个程序中,将造成代码臃肿、维护麻烦等一系列问题。两个程序均与时间有紧密的关系,精确度需要到毫秒级别(排除 time 本身的误差),现在第一个程序运算后得出一个时间,此时间作为第二个程序的输入。两个程序均设置 windll.winmm.timeBeginPeriod(1)。两个程序均使用 pyinstaller 打包。

    疑问:其实这个问题从某个角度来说就是看 time 模块每次调用的时候是不是调用的 windows 系统时间。个人拙见!

    问题:这种情况下,在同一台电脑上两个程序的时间能够达到毫秒级别精度同步,有哪位技术大牛能否给予技术解答,万分感谢。

    7 条回复    2021-08-09 19:44:02 +08:00
    cclin
        1
    cclin   114 天前 via Android
    这种需求考虑一下 ntp ?
    vhysug01
        2
    vhysug01   114 天前
    进程间通信?
    CEBBCAT
        3
    CEBBCAT   114 天前 via Android   ❤️ 1
    要不还是把架构贴一下,说不定 V 友能帮你解耦
    yolee599
        4
    yolee599   114 天前 via Android
    为啥要两个程序读时间,一个程序处理好把结果和时间戳一起带过去就行了
    LeeReamond
        5
    LeeReamond   114 天前
    我觉得不论如何读时间还是要靠 systemcall 完成的,即使以任何方式进行进程间通信,由于互相无法访问对方状态,无论如何也需要双方各获取一次时间才能计算两者之间的时间差。
    dangyuluo
        6
    dangyuluo   113 天前   ❤️ 1
    两个进程同步的定义是什么呢?这两个线程有可能都不在同一时间运行(不太了解 Windows 调度器不过应该不可能有什么黑科技)。我觉得你需要的是一种信号机制,而且你还得考虑进程 B 被唤醒的时候会立刻抢占 CPU 。如果非得精确到毫秒,我觉得你可能需要了解下实时系统?
    killva4624
        7
    killva4624   113 天前
    可以考虑用文件通信或者接口通信,能带上时间戳就行…
    再苛刻一些就用内存通信吧。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1087 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
    ♥ Do have faith in what you're doing.