일부 분산 알고리즘을 구현하기 위해 RMI를 사용하고 있으며, 상당히 큰 객체를 전송하기 때문에 RMI가 네트워크를 통해 직렬화 된 객체를 전송할 때 몇 가지 정밀함을 원합니다.Java RMI를 사용하면 네트워크를 통해 직렬화 된 객체가 정확히 전송되는 시점은 언제입니까?
다음 방법으로 원격 클래스가 있다고 가정합니다.
class MyServer extends Remote {
public synchronized void foo (Bar bar) {
...
Thread.wait();
...
}
}
이제 두 개 이상의 RMI 클라이언트가 MyServer.foo 메서드를 호출합니다. 클라이언트 1이 호출하면 스레드가 차단됩니다 (). 그런 다음 클라이언트 2은 foo으로 전화를 걸고 클라이언트 1은 여전히 동기화 된 foo 메서드에 있기 때문에 차단됩니다. 이제
, 질문은 : 네트워크를 통해 전송되는 클라이언트 2 전화의 바 매개 변수가 언제입니까? 클라이언트 2은 실제로 차단 된 경우 foo 방법을 입력 할 수 있습니까?
보너스 질문 : RMI 사양에 따라 시행되는 동작입니까, 구현에 따른 동작입니까?
이 코드는 컴파일되지 않습니다. 네가 묻고있는 것이 불분명하다. – EJP