2017-11-04 6 views
0

여러 클라이언트가있는 표준 Java RMI 서버를 개발하고 있습니다. 이 클라이언트에는 서버를 호출하여 다양한 작업을 수행 할 수있는 메뉴가 있습니다.여러 클라이언트가있는 Java rmi 서버 - 한 번에 하나의 클라이언트 호출 만 허용합니다.

한 가지 방법은 작업을 대기열로 보내고 처리 될 때까지 기다릴 수있는 대기열을 포함합니다. RMI 서버는 모든 클라이언트에 대한 스레드를 자동으로 처리하지만이 방법과 대기열의 경우이 요청을 다시 보유 할 수 있습니다 (예 :

클라이언트 1이 먼저 호출 된 후 클라이언트 2가 바로 다음에 호출 됨 여기서 클라이언트 1은 서버에서 먼저 메시지를 받아야하고 클라이언트 2는 서버가 클라이언트 1 요청을 처리하는 데 걸리는 시간을 대기해야합니다.)

이 작업에 대해서만 일종의 싱글 톤을 만드는 것이 맞습니까? 이 문제를 해결하려면 어떻게해야합니까?

+0

모니터 문제가 마음에들 것 같습니다. 동기화 된 방법을 사용해 보셨습니까? – atmin

+0

@JacekCz 복잡하지는 않으며 엔터프라이즈 응용 프로그램 일 필요는 없습니다. RMI에 대해 모른다면 여기에 유용한 것을 추가하지 않아도됩니다. – EJP

+0

은 "복잡하지 않다"는 말에 동의하지만, 지사에서 사용되는 일반적인 단어는 헬프입니다. 나는 종교적인 "패턴"추종자가 아니지만 커뮤니케이션에 도움을 줄 수 있습니다. –

답변

0

관련 원격 메소드를 synchronized으로 설정하십시오.

큐가 필요하지 않습니다.