2013-11-25 7 views
1

다음 요청 처리를 위해 ((LinkedBlockingQueue)queue).take() 메서드를 사용하는 함수가 있습니다.처음에 LinkedBlockingQueue에서 항목을 제공하려면 어떻게해야합니까?

뭔가가 요청 처리 중에 잘못되면, 내가 실제로 도착 순서대로 처리

참고하는 제 큐에 있지만 요청을 보장하기 위해 매우 첫 번째 장소에서 요청을 제공하고 다시 싶습니다이에 요점 그것이 실패하면 서비스가 중단되어 요청이 제대로 처리되지 않는다는 것을 알고 있습니다.

어떻게하면됩니까? LinkedBlockingQueue은 머리가 아닌 꼬리 부분에만 상품을 제공 할 수 있습니다. 나 같은 것을 필요로한다 queue.untake(item)

어떤 생각?

답변

1

LinkedBlockingDequeue을 살펴보면 offerFirstofferLast을 사용하여 도착 순서를 유지할 수 있습니다.

1

대신 LinkedBlockingDeque이 필요합니다. offerFirst 방법을 사용하십시오.

큐를 폴링하는 스레드가 여러 개있는 경우 다른 스레드보다 먼저 처리 할 수 ​​있는지 실제로 확인할 수 없습니다.

관련 문제