我目前正在使用ByteBuffer,其中生产者提供了要存储的字节数组。我有一个线程,不断查看ByteBuffer,搜索一个字节序列(一个开始代码),以确定我是否有完整的消息。如果我找到一个完整的消息,我将提取字节数组并向各种侦听器发出一个事件。这是生产者以块的形式向我发送数据的方式。
我必须做很多旋转才能使ByteBuffer线程安全,而且这看起来并不优雅。
有更好的方法吗?
答案 0 :(得分:0)
我建议你PriorityBlockingQueue。它来自java.util.concurrent
包含义,可以从不同的线程安全地访问。它只是一个FIFO实现。
将你的字节放在这个集合中,并在不同的线程中等待它们。