【问题标题】:Is it possible to activate a thread every 1us with python?是否可以使用python每1us激活一个线程?
【发布时间】:2019-10-07 14:57:38
【问题描述】:

对于我的应用程序,需要一个每 1us 记录一个以太网帧的功能。是否可以使用 python/threading 来做到这一点?

我使用 threading.Timer 得到的最大延迟接近 10 毫秒。

【问题讨论】:

  • “每 1us 记录一个以太网帧”是什么意思?您想测量帧之间的确切时间,或者每 1 微秒执行一次操作,或者记录预计每微秒出现的以太网帧,还是......?
  • 我会说你需要启动一个有紧密循环的multiprocessing Process。你是否能确保它可以做一些“每个美国”的事情是值得怀疑的。我会说任何类型的事件都会有太多的开销。
  • @Sneftel,感谢您的回复。实际上,第三种选择:记录预计每 1us 出现的以太网帧。

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


【解决方案1】:

没有。

1µs 远低于常规操作系统提供的粒度,通常以 毫秒 秒(即数千 µs)为单位。请参阅 this answer for a discussion about Linux time slicesthis one

不用说,如果操作系统不能提供这样的粒度,那么在用户空间中运行任何东西都没有希望。

如果您确实需要 µs 级精度,则需要查看实时系统。由于您的问题中有ethernet 标签,您可能还想查看network processors

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-31
    • 2015-07-09
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多