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

2021-08-08 15:11:38 +08:00
 596164296

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

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

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

1753 次点击
所在节点    Python
7 条回复
cclin
2021-08-08 18:37:23 +08:00
这种需求考虑一下 ntp ?
vhysug01
2021-08-08 19:28:24 +08:00
进程间通信?
CEBBCAT
2021-08-08 20:27:26 +08:00
要不还是把架构贴一下,说不定 V 友能帮你解耦
yolee599
2021-08-08 22:09:32 +08:00
为啥要两个程序读时间,一个程序处理好把结果和时间戳一起带过去就行了
LeeReamond
2021-08-09 03:07:10 +08:00
我觉得不论如何读时间还是要靠 systemcall 完成的,即使以任何方式进行进程间通信,由于互相无法访问对方状态,无论如何也需要双方各获取一次时间才能计算两者之间的时间差。
dangyuluo
2021-08-09 14:37:51 +08:00
两个进程同步的定义是什么呢?这两个线程有可能都不在同一时间运行(不太了解 Windows 调度器不过应该不可能有什么黑科技)。我觉得你需要的是一种信号机制,而且你还得考虑进程 B 被唤醒的时候会立刻抢占 CPU 。如果非得精确到毫秒,我觉得你可能需要了解下实时系统?
killva4624
2021-08-09 19:44:02 +08:00
可以考虑用文件通信或者接口通信,能带上时间戳就行…
再苛刻一些就用内存通信吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX