【问题标题】:Multiple access to direct ByteBuffer多次访问直接 ByteBuffer
【发布时间】:2017-05-08 09:00:08
【问题描述】:

我目前正在用 Java 创建用于实时音频通信的应用程序。计划是处理多个(超过 100 个)同时连接。其中一项要求是,当我收到信号时,我必须传输舒适的噪音。我想知道的是,在当前的实现中,对于每个连接,我都将带有噪声的文件加载到内存中,然后将其推送到 20ms 样本中输出。

我想知道我是否只能在内存中加载一次。我的第一个猜测是创建Enum Singleton,它将文件加载到直接ByteBuffer,然后不同的线程将访问它并获取不同的样本。

这种方法有什么缺点吗?我可以安全地使用多个只读ByteBuffers 来引用一开始创建的那个吗?它在重负载的应用程序中可以正常工作吗?

【问题讨论】:

    标签: java bytebuffer


    【解决方案1】:

    您需要slice() 缓冲区,以便每个线程获得不同的视图,每个视图都有自己的positionlimit

    【讨论】:

    • 这正是我打算做的。我不想公开对这个单个 ByteBuffer 的引用,我想将它的只读切片返回到流中。
    猜你喜欢
    • 2018-04-13
    • 2012-06-25
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2014-07-19
    • 1970-01-01
    相关资源
    最近更新 更多