私はメインスレッドの上に2つのスレッドがある画像処理アプリケーションに取り組んでいます:
1- Webカメラから画像をキャプチャしてバッファに書き込むCameraThread
2-フィルタリングのためにそのバッファから最新の画像を取得するImageProcessingThread 。
これがマルチスレッドである理由は、速度が重要であり、前の画像を処理している間、画像を取得し、ImageProcessingThreadが最新のキャプチャを取得できるようにするためにCameraThreadが必要だからです。
私の問題は、その共通バッファーにアクセスするための高速でスレッドセーフな方法を見つけることです。理想的には、ImageProcessingThreadが遅い場合に、CameraThreadが続行できるように、トリプルバッファー(image [3])である必要があると考えました。他の2つの画像に書き込む、またはその逆。
これがスレッドセーフであるためには、どのような種類のロックメカニズムが最も適切でしょうか?
私はlockステートメントを調べましたが、スレッドがブロックされ、別のスレッドが終了するのを待っているように見えます。これは、トリプルバッファリングのポイントに反します。
アイデアやアドバイスを事前に感謝します。
J。