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?