我正在使用RMI來實現一些分佈式算法,並且由於我們正在傳輸相當大的對象,所以我希望有一些關於RMI何時通過網絡傳輸串行化對象的精確度。使用Java RMI時,是否通過網絡傳輸序列化對象?
假設我有以下方法的Remote類。
class MyServer extends Remote {
public synchronized void foo (Bar bar) {
...
Thread.wait();
...
}
}
現在,我有兩個(或更多)RMI客戶端調用MyServer.foo方法。 當客戶端1調用它時,它將被阻止在Thread.wait()。然後,客戶端2個呼叫FOO和它被阻止,因爲客戶端1仍處於FOO方法,該方法是同步的。
現在,問題是:什麼時候吧客戶端通過網絡傳輸的參數?只有一次客戶端2實際上可以輸入foo方法或之前,當它被阻止?
紅利問題:這是(傳遞對象的時間)是由RMI規範強制實施的行爲還是此實現特定的行爲?
此代碼甚至沒有編譯。不清楚你在問什麼。 – EJP 2017-07-05 03:38:08