問題タブ [pyspin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - マルチプロセッシング プロセスで PySpin が cam.GetNextImage() でハングするが、同一スレッドではハングしない
スレッド化モジュールまたはマルチプロセッシング モジュールを PySpin と共に使用して、4 台の FLIR Blackfly S USB3 カメラから画像を記録しています。プライマリ カメラは「開始」ハードウェア信号で画像の収集を開始し、3 台のセカンダリ カメラはプライマリ カメラの画像キャプチャにハードウェア同期されます。
この構成と以下のサンプル コードを使用して、各スレッドはimage_result = cam.GetNextImage()行で画像が利用可能になるのを待ちます。開始信号が到着すると、カメラは画像のキャプチャを開始し、スレッドは画像を取得して無期限に実行します。
threading.Thread のすべてのインスタンスを multiprocessing.Process に置き換えると、コードはimage_result = cam.GetNextImage()でハングし、開始信号が到着しても画像の収集を開始しません。どちらの場合も、開始シグナルを受信する前の端末出力は次のようになり、4 つのスレッド/プロセスすべてがその行に到達し、シグナルを待機していることを示します。
最終的にプロセスを便利に終了できるように、マルチプロセッシングを使用したいと考えています。プロセス内ではなくスレッド内で作業しているときに、カメラがハードウェア信号を受信して動作できる理由について、誰か洞察を持っていますか?