問題タブ [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.

0 投票する
0 に答える
56 参照

python - マルチプロセッシング プロセスで PySpin が cam.GetNextImage() でハングするが、同一スレッドではハングしない

スレッド化モジュールまたはマルチプロセッシング モジュールを PySpin と共に使用して、4 台の FLIR Blackfly S USB3 カメラから画像を記録しています。プライマリ カメラは「開始」ハードウェア信号で画像の収集を開始し、3 台​​のセカンダリ カメラはプライマリ カメラの画像キャプチャにハードウェア同期されます。

この構成と以下のサンプル コードを使用して、各スレッドはimage_result = cam.GetNextImage()行で画像が利用可能になるのを待ちます。開始信号が到着すると、カメラは画像のキャプチャを開始し、スレッドは画像を取得して無期限に実行します。

threading.Thread のすべてのインスタンスを multiprocessing.Process に置き換えると、コードはimage_result = cam.GetNextImage()でハングし、開始信号が到着しても画像の収集を開始しません。どちらの場合も、開始シグナルを受信する前の端末出力は次のようになり、4 つのスレッド/プロセスすべてがその行に到達し、シグナルを待機していることを示します。

最終的にプロセスを便利に終了できるように、マルチプロセッシングを使用したいと考えています。プロセス内ではなくスレッド内で作業しているときに、カメラがハードウェア信号を受信して​​動作できる理由について、誰か洞察を持っていますか?