2009-08-19 5 views
1

나는 서버와 RMI를 통해 통신하는 두 개의 다른 프로세스에 두 개의 클라이언트를 가지고 있습니다.RMI java-2 클라이언트 1 서버의 경쟁 조건

내 질문 : 동시에 두 클라이언트가 서버의 스텁을 동시에 호출하면 어떻게됩니까? 당신이 시간

덕분에, 나

답변

1

아무것도 기본적으로 운이 나쁜 - 정확히 동시에 두 개의 스레드에서 다른 객체의 메소드를 호출 동일합니다. 1 대 서버에서 많은 클라이언트 모델로 RMI와 같은 네트워크 프로토콜이 있습니다.

서버 내의 공유 데이터에 대한 액세스는 필요한 경우 동기화 된 블록에 의해 조정되어야합니다. 서버가 수행하는 작업에 따라 다릅니다.

3

This tutorial은 RMI 서버의 스레드 특성을 보여줍니다 (7.1 태스크 참조). 이들은 RMI 사양 인용 :

원격 오브젝트 구현 (a 서버)에 RMI 런타임 로 전달시키는 방법 또는 별도의 스레드에서 실행되지 않을 수있다. 서로 다른 클라이언트에서 시작된 의 호출 가상 기계가 서로 다른 스레드에서 실행됩니다. 동일한 클라이언트 시스템에서 각 방법 이

그래서 다른 클라이언트로부터 호출이 서버에서 다른 스레드를 통해 실행 발생합니다 별도의 스레드에서 실행됩니다 보장 할 수 없습니다.

+0

감사 브라이언, 난 당신의 대답에 대한 또 다른 질문이 : 이 다른 클라이언트에서 호출이 다른 스레드에서 실행되기 때문에 가 보장되는 내 RMI 객체가 포장 RMI 객체뿐만 아니라 상태를 저장 무 상태 인 경우? 다시 감사합니다 –

+0

BTW 회사 이름과 같은 ... OOPS 컨설팅 –