Bonjour à tous!
Je suis en train de faire un serveur RMI et je voulais justement savoir comment le système RMI géré les threads.
En faisant quelques teste j'ai découvert que:
- chaque client à sa thread propre par port, c'est-à-dire que pour chaque RemoteObject exporté sur un même port, les méthodes appelées du client sur ces objets seront exécutées dans une même thread spécifique au client.
- chaque objet exporté sur des ports différents seront exécutés sur des threads différentes. Ex: le client C1 demande l'objet o1 qui est sur le port 35 et l'objet o2 qui est sur le port 40, les méthodes de o1 seront exécutées sur une thread différente de celle qui exécutera les méthodes de o2. Cependant si un objet o3 est exporté sur le même port que o2, alors si le client C1 exécute des méthodes de o3, alors elles seront exécutées sur la même thread que o2.
Piouf, si mes testes sont bons ce que je dis est normalement vrai. Cependant je vous explique tout ça pour vous dire que moi ça ne me convient pas, je n'aime pas le fait que pour chaque client il y est au moins une thread qui soit créée.
Du coup je voudrais savoir s'il existe une possibilité pour "configurer" le RMI pour qu'il ne puisse pas créer une thread par client mais les regrouper dans la même thread ou un pool de thread.
Je vous remercie d'avoir lu mon message, j'espère que vous pourrez m'orienter vers quelque chose!
Merci beaucoup!
Callimard
Partager