Ich erstelle derzeit Anwendung in Java für Echtzeit-Audio-Kommunikation. Plan ist es, mehrere (über 100) simultane Verbindungen zu verwalten. Eine der Anforderungen ist, dass ich Komfortgeräusche streamen muss, wenn ich Signale bekomme. Was ich mich wundere ist, dass ich in der aktuellen Implementierung für jede Verbindung lade ich Datei mit Rauschen in den Speicher und dann dränge ich es in 20ms Proben auszugeben.Mutliple Zugriff auf direkte ByteBuffer
Ich frage mich, ob ich es nur einmal im Speicher laden kann. Meine erste Schätzung ist Enum Singleton
erstellen, die Datei in direkte ByteBuffer
laden und dann verschiedene Threads zugreifen würde und erhalten verschiedene Proben.
Gibt es irgendwelche Nachteile dieses Ansatzes? Kann ich mehrere read only ByteBuffers
referenzieren, die auf die beim Start erstellte verweist? Wird es in schwer beladenen Anwendungen problemlos funktionieren?
Das ist genau das, was ich vorhabe. Ich möchte keinen Hinweis auf diesen einzelnen ByteBuffer geben, ich möchte nur lesbare Slices davon an den Stream zurückgeben. –