我即将使用 Python 启动一个程序,该程序主要进行轮询,它将不断从串行端口(通过PySerial
)读取并从不时更改的文件描述符中读取。我开始研究该threading
模块,但后来我不断发现越来越多的使用该模块的建议。multiprocessing
我不太精通 Python,主要来自 C 背景。Python 中的线程方法的技术优势是什么?
在 C 中,线程共享数据而不是必须设置一些 IPC 进行通信,这对于 Python 来说似乎是一样的?
我的用例:
Main process (or thread?) -
start & initialize
|
V
spaw child----------------------> start & initialize
| |
V V
while (1) <------------+ wait for data<------+
| | | |
V | V |
read file descriptors | read from |
| | serial port<-----+ |
V | | | |
value changed? ------No--+ V | |
| ^ message done?--No-+ |
V | | |
Report change------------+ V |
over serial alert parent---------+
所以我在考虑线程,因为它会使共享数据更容易通过串行传输,并且它们可以共享串行端口的句柄。这是有道理的,还是我从 Pythonic 的角度考虑不正确?