大規模な配列に格納されたイメージデータを使用して、リアルタイムの画像処理を実行するJavaアプリケーションがあります。配列にスレッドセーフではない
イメージ配列の一部の更新は、常に複数のスレッドから発生しています(これは、受信イベントの非常に大きなボリュームストリームの視覚化のためのものです)。
読者は表示および/またはそれ以上の処理のためにイメージアレイの一部のコピーを取る必要があります。
高スループットが必要なため、同時アクセスを処理するために高価な同期を避けたいと考えています。さらに、ときおり小さな視覚的誤差が許容され得る。リーダが、特定の着信イベントに対して部分的にしか更新されていないイメージのセクションをコピーする場合。基本的には、最大のスループットを確保するためにスレッドの安全性を緩和することです。
このアプローチは機能しますか?私が知っておくべきことは何ですか?
は仕事に行く何のアプローチですか?同期を「リラックス」したいと言っていますが、完全に削除するように思えます。次に、同期なしでマルチスレッド化されたコードを持つ既知の問題(スレッドがお互いの作業を上書きするなど)を実行します。 – Thomas