データ取得用と表示用の2つのスレッドがあります。不必要な同期を避けるためです。書き込みが(他のバッファに、バッファのデータスレッドスイッチを完了すると表示スレッドがバッファ2 マルチスレッドアプリケーションでダブルバッファリングを同期する方法
- データのスレッドがバッファ1を書いている:私は次のようにダブルバッファ(又はページフリッピング)を使用しバッファ2)、新しいページの書き込みを開始します。
- 読み取りの場合、バッファが書き込みの途中にある場合、表示スレッドは他のバッファから読み込みます。
実際にはうまくいくことがありますが、時には100フレームごとに1回表示されます。これは、まだ競合状態があることを意味します。
このように、このダブルバッファリングの最小限の(効果的な)同期を実装するにはどうすればよいですか?疑似アルゴリズムで十分です。
あなたのGUIライブラリがあなたのために行うのでなければ、ビデオカードのリフレッシュ信号に関してダブルバッファリングも同期させる必要があります。それ以外の場合は、ディスプレイを再描画すると同時にモニタが更新された場合にも、「引き裂き」が発生する可能性があります。 –