【问题标题】:Best Collection for managing producer-consumer byte array管理生产者-消费者字节数组的最佳集合
【发布时间】:2016-11-06 08:18:57
【问题描述】:

我目前正在使用一个 ByteBuffer,生产者提供一个字节数组来存储。我有一个线程不断查看 ByteBuffer 搜索字节序列(起始代码)以确定我是否有完整的消息。如果我找到一条完整的消息,我会提取字节数组并向各种侦听器触发一个事件。这是生产者以块的形式向我发送数据的方式。

为了让 ByteBuffer 线程安全,我必须做很多的调整,这似乎一点也不优雅。

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: android arrays bytebuffer consumer producer


    【解决方案1】:

    我建议你PriorityBlockingQueue。它来自java.util.concurrent 包的含义,即可以从不同的线程安全地访问。它只是一个 FIFO 实现。 将您的字节放入此集合中并在不同的线程中等待它们。

    【讨论】:

    • 如何在 BlockingQueue 中存储单个字节?如果我将每个字节数组存储为一个新的对象,这将使消息片段之间的解析变得非常困难。
    猜你喜欢
    • 2014-04-08
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多