0

私の問題は、以下のアーキテクチャで最もよく説明されていますここに画像の説明を入力

基本的に、NSMutableDataオブジェクト (または他のオブジェクト) の内容をリアルタイムで消去する必要があります。つまり、オブジェクトを含むスレッドをブロックすることはできません。これを行う方法/APIはありますか?

更新:以下のコメントで述べたように..オーディオパケットをリアルタイムでメインスレッドに受信し、すぐに専用のオーディオプールスレッドにルーティングしています..(非常に多くのスレッドを取得した理由はb / ciにありません着信パケットの受信を制御します..それらはリアルタイムで送信されます+再生速度はデータ受信速度よりもはるかに遅い..したがって、個別のオーディオプールスレッドとリーダースレッド)

4

1 に答える 1

0

リング バッファーとも呼ばれる循環バッファーは、バイト配列をバッファーとして直接使用できるため、NSMutableData とうまく連携します。

設計を見ると、なぜそんなに多くのバッファが必要なのかわかりません。1 つのスレッドと 2 つのバッファが多すぎるようです。リングバッファを1つだけ用意して、それをいっぱいにして(「セルフパージ」)、別のスレッドでそれを読み取らないのはなぜですか? デザインはあなたのものですか (つまり、変更できます)、それとも強制されたものですか?

いずれにしても、オーディオ プールにリング バッファを使用してみてください。

于 2012-09-17T18:48:17.900 に答える