J'utilise RMI pour implémenter certains algorithmes distribués, et puisque nous transmettons des objets assez volumineux, je voudrais des précisions sur le moment où RMI transmet des objets sérialisés sur le réseau. Supposons que je possède une classe à distance avec la méthode suivante:En utilisant Java RMI, quand exactement l'objet sérialisé est-il transmis sur le réseau?
class MyServer extends Remote {
public synchronized void foo (Bar bar) {
...
Thread.wait();
...
}
}
Maintenant, j'ai deux (ou plus) clients RMI appelant la méthode MyServer.foo. Lorsque Le client 1 l'appelle, il est bloqué dans Thread.wait(). Ensuite, Le client 2 appelle foo et il est bloqué car le client 1 est toujours dans la méthode foo qui est synchronisée.
Maintenant, la question est: Quel est le bar paramètre du client appel transmis sur le réseau? Une seule fois Le client 2 peut réellement entrer la méthode foo ou avant, lorsqu'il est bloqué?
Question supplémentaire: S'agit-il (du moment où les objets sont transmis) d'un comportement imposé par les spécifications RMI ou est-ce spécifique à l'implémentation?
Ce code ne compile même pas. Pas clair ce que vous demandez. – EJP