我正在编写一些单元测试代码,并且需要知道发布到破坏者的环形缓冲区的所有事件都已处理(如上所述,它仅适用于特定的测试用例)。
在研究了几个小时并没有找到任何优雅的解决方案后,我决定在测试用例中使用以下代码:
while (ringBuffer.getBufferSize() > ringBuffer.remainingCapacity()) {
Thread.yield();
}
它似乎有效,但由于getBufferSize()
返回 anint
并remainingCapacity()
返回 along
我担心我忽略了一些东西。
任何人都知道为什么getBufferSize()
返回一个int
并remainingCapacity()
返回一个long
?这对我来说没有意义,除非它是一个错误。