1
我有以下代碼:RMI:線程在等待服務器端
public interface RmiServer extends Remote{
public String getMessage()throws RemoteException;
}
public class DefaultRmiServer implements RmiServer{
private LinkedBlockingQueue<String> queue;
@Override
public String getMessage()throws RemoteException{
return queue.take();
}
...
}
當RMI客戶端調用getMessage()
方法顯然可以有兩種情況:
- 存在的消息隊列和方法返回
- 有
no
消息隊列和線程正在等待
這次rmi呼叫的第二種情況會發生什麼?客戶等待多久?
默認情況下,永遠其它參數列表。 – GhostCat
如果你想讓這個更健壯的api,我會建議實現一個方法,它需要一個「long waitTime」,它允許客戶端控制他們願意等待多長時間(而不是依賴rmi超時這是一個「全球「值爲jvm)。 – jtahlborn