Hi,
ist es möglich eine blockierende RMI Methode zu erstellen?
Ich hab schon folgendes ausprobiert:
mit diesen Methoden blockiere ich bzw hebe diese wieder auf.
Wenn ich jetzt die lock() Methode auf dem Server aufrufe, wird der Thread auch gestoppt und wenn der client eine Methode aufruft, die unlock() aufruft, läuft es weiter.
Jetzt will ich aber folgendes: Der Client soll eine Methode aufrufen, die lock() aufruft und somit die Methode blockiert. Und irgendwann ruft dann der Server unlock() auf damit die Methode beendet und der Client weiter läuft. nur dieses klappt nicht, da das Blockieren nur auf dem Server statt findet und der Client normal weiter läuft.
Daher die Fragen: kann man eine Remote Methode erstellen, die den Client blockiert?
Mfg
SebiB90
ist es möglich eine blockierende RMI Methode zu erstellen?
Ich hab schon folgendes ausprobiert:
Code:
private Lock lock = new ReentrantLock();
private Condition condition = lock.newCondition();
private void lock() {
try {
lock.lock();
condition.await();
} catch (InterruptedException x) {
x.printStackTrace();
} finally {
lock.unlock();
}
}
private void unlock() {
try {
lock.lock();
condition.signal();
} finally {
lock.unlock();
}
}
Wenn ich jetzt die lock() Methode auf dem Server aufrufe, wird der Thread auch gestoppt und wenn der client eine Methode aufruft, die unlock() aufruft, läuft es weiter.
Jetzt will ich aber folgendes: Der Client soll eine Methode aufrufen, die lock() aufruft und somit die Methode blockiert. Und irgendwann ruft dann der Server unlock() auf damit die Methode beendet und der Client weiter läuft. nur dieses klappt nicht, da das Blockieren nur auf dem Server statt findet und der Client normal weiter läuft.
Daher die Fragen: kann man eine Remote Methode erstellen, die den Client blockiert?
Mfg
SebiB90