私は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の観点から間違って考えていますか?