2014-06-16 2 views
4

소켓에서 읽는 것을 차단하거나 항목이 차단 대기열에 나타날 때까지 블로킹 큐를 선택 자에 추가하고 싶습니다.Java에서 소켓 및 blockingqueue를 차단하는 방법이 있습니까?

이와 같은 이종 유형에서 작동하는 상위 수준의 선택기와 같은 기능이 있습니까?

2 개의 스레드를 차단하고 각 블록을 개별적으로 처리 할 수 ​​있지만 두 가지 유형의 개체를 모두 차단할 수있는 하나의 기능 만 있으면 더 깨끗합니다.

차단되고있는 각 개체에 대해 모니터를 잡고 선택기 같은 개체를 사용하여 둘 모두를 차단하는 방법이 있습니까?

답변

2

둘 다 스레드 블록을 가질 수 있다고 생각하지 않습니다. 문제가 큐에서 또는 직접 소켓에서 작업을 수락 할 수있는 작업자 스레드가 있으면 소켓에서 작업을 읽고이를 큐에 넣는 별도의 스레드를 갖는 것이 더 깔끔합니다.

+0

차단할 수있는 모든 것이 BlockingThing이라고하는 것으로부터 파생되는 경우 더 깨끗합니다. :-) – stu

관련 문제