Python 当 运行 两个程序在 raspberry pi 时变慢

Python becomes slow when running two programs in raspberry pi

当 运行 两个程序在 Raspberry Pi 上使用 python gpio 引脚时,一个变慢。 一种是磁传感器,另一种是温湿度传感器。后者是放慢速度的。它不是每 2 秒打印一次温度,而是每 5 到 10 秒打印一次。如果它进来,磁传感器运行速度更快。

看来您的问题不是 Python,而是 IO 差距。即使您使用不同的引脚,Raspberry 的 GPIO 也使用相同的总线来处理所有引脚,因此一个进程需要等待另一个进程使用,而不是有时间。

您可以使用相应的解决方案来处理这个问题,但之后可能会出现类似于联合程序的问题。

基本思路: 将两个程序合二为一。单数 process/thread 来统治所有的阅读。

改进的想法:将您的代码分成三个进程。其中两个将只是 read/write 一个数组并使用来自 GPIO 的值。该进程之一将是您的主要进程,并将 SharedArray 来处理 GPIO 数据。请记住,从 RAM 读取比从 GPIO 读取多 better/faster,因此只需使用数组从 IO 更新状态。您可以使用一个数组设置新值,另一个数组存储实际值。

前段时间我用一些Sockets to broadcast some IO data over some threads and could get a updated data (picture from camera) and share it with the threads with a gap of 100ms, just avoiding the IO gap. So you could get a similar result using the SocketServer lib with some workers来传播信息