OrderBlockQueue
順序堵塞池
當Queue為有順序類型,例如第一個屬性為key Queue{A,XXXX},Queue{A,XXX1},Queue{B,XXXX}
以上資訊依序加入,
接下來task取出, 順序為
Queue{A,XXXX} start... Queue{B,XXXX} start...
...堵住 .. Queue{A,XXXX} end...
...取出... Queue{A,XXX1} start... Queue{B,XXXX} end... Queue{A,XXX1} end...
/**
* block key
*/
public interface IBlockKey {
/**
* key
* @return
*/
String toKey();
}
@Test
void testOrder() throws InterruptedException {
OrderQueue<OrderItem> blockQueue = new OrderQueue<>();
IntStream.range(0, 10)//
.mapToObj(i -> new OrderItem(i + "", i + "", i))//
.forEach(blockQueue::add);//
while (!blockQueue.isEmpty()) {
OrderItem item = blockQueue.take();
log.info("item:{}", item);
blockQueue.remove(item);
}
}
Last updated
Was this helpful?