2017-05-08 14 views
1

私は現在、リアルタイムオーディオ通信のためにJavaでアプリケーションを作成しています。計画は、複数の(100以上の)同時接続を処理することです。要件の1つは、信号を受け取ったときに快適な騒音を流さなければならないということです。私が疑問に思っているのは、現在の実装では、各接続のためにメモリにファイルをロードしていて、20msのサンプルで出力するようにプッシュしています。直接のByteBufferへの複数のアクセス

メモリに一度しかロードできないのでしょうか?私の最初の推測は、直接ByteBufferにファイルをロードするEnum Singletonを作成してから、異なるスレッドがそれにアクセスして異なるサンプルを取得することです。

このアプローチの欠点はありますか?開始時に作成された読み取り専用の複数読み取り専用ByteBuffersを安全に使用できますか?負荷が重いアプリケーションでも問題なく動作しますか?

答えて

3

limitを持つスレッドごとに異なるビューを得るように、バッファーをslice()にする必要があります。

+0

これはまさに私がやろうとしていることです。私はこの単一のByteBufferへの参照を公開したくないので、ストリームの読み込み専用のスライスを返したいと思います。 –

関連する問題