2009-10-08 2 views
1

필자가 쓰고 싶은 구성 요소가 있는데 그것은 일반적인 패턴처럼 느껴지는 종류입니다. 패턴이있을 경우 패턴의 공통 이름을 찾고 패턴을 구현하는 방법에 대한 예를 찾고 싶습니다.이 대기열 시스템에 대한 패턴과 예제 Java 코드가 있습니까?

요청을 대기열에 넣고 한 번에 하나씩 처리하는 서비스가 있습니다. 요청을하는 클라이언트 스레드 수가 많습니다. 핵심은 호출하는 스레드가 자신의 특정 요청을 처리 할 때까지 차단해야한다는 것입니다.

예. 10 개의 쓰레드가 있고, 모두 요청을하면, 10 번째 쓰레드는 큐의 앞쪽으로 요청을 처리하기를 기다리는 동안 가장 오랫동안 블록 할 것이다. 전혀 이유를 가지고 귀찮게 스레드 -

service.processMessage(myMessage); /* block whilst it enqueues, waits, */ 
            /* processes and returns */ 

난 당신이 무슨 생각을하는지 알고 : 간단한 pseodocode에서, 전화는 간단 할 것인가? 내 통제 범위 밖의 설계 제약이 있다고 말하자.

또한 이것은 infuriating subset of real Java을 의미하는 JavaME에서 실행되어야하며 멋진 외부 라이브러리는 실행되지 않아야합니다.

답변

3

처리 요청의 전체 순서에 대한 요구 사항이없는 경우 (즉, "도착한 순서에 관계없이 다른 스레드의 요청을 임의로 혼합하는 것을 원하지 않는 경우) processMessage)synchronized, 아마도.

+0

와우. 그건 내 모든 부분에 너무 많은 엔지니어링이 필요 없어졌습니다. 나는 무시하기에는 너무 완벽하기 때문에, 미래에 진정한 동시성이 모호 할 수도 있음에도 불구하고 실제로 이것을 할 수 있습니다. 감사. – izb

관련 문제