2012-07-16 3 views
2

엔트리의 결합을 허용하는 java.util.concurrent.BlockingQueue의 효율적인 (모든 것을 동기화하지 않고) 구현이 있습니까?항목을 결합 할 수있는 효율적인 BlockingQueue 구현은 무엇입니까?

결합하면받는 항목을 대기열에있는 기존 "동일"항목 (있는 경우)과 병합합니다. 그렇지 않으면 평소와 같이 항목이 마지막에 추가됩니다.

+0

그래서 중복 요소를 허용하지 않는다는 점에서 Set와 비슷한 동작을하는 Queue를 의미합니까? – Miquel

답변

0

타임 스탬프와 소스가 두 속성 인 경우 이벤트 결합이 표시되지 않습니다. 같은 사용자가 나노 초 이내에 두 이벤트를 보내지 않는다면, 나는 그들이 같다고 여겨 질 수없고 결합 되어서도 안된다고 생각하지 않습니다.

2

이 답변을 확인하십시오 : Concurrent Set Queue. 병합을 의미하는 모든 것이 이미 대기열에있는 것과 동일한 요소를 무시하는 경우 질문의 중복이 될 수 있습니다.

1

BlockingQueue 스포츠는 방법입니다. 자유롭게 사용해도되지만 동기화하는 것을 잊지 마십시오. contains은 O (n) f.x입니다. LinkedBlockingDeque에 있으니 HashSet으로보다 효율적인 방법을 시도해보십시오.