我即将开始使用Python编写一个程序,主要是进行轮询,它将不断从串口(通过
我对Python不是很熟悉,主要来自于C语言背景。在Python中,线程方法的技术优势是什么?
在C中,线程共享数据而不必设置一些IPC来通信,这似乎也适用于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---------+
我在思考线程,因为它可以使串行传输数据变得更容易,并且它们可以共享串口句柄。这样想有道理吗?或者从Python的角度来看,我的想法是不正确的?
threading
是更好的选择。 - mgilson