Utilisation de JNI dans une appli web

Utilisation de JNI dans une appli web - Java - Programmation

Marsh Posté le 05-06-2003 à 10:28:19    

Je me pose la question suivante :
Bon, si je n'me trompe pas, les servlets sont multi-thread, c à dire que chaque client est dans un thread séparé, c'est ce qui permet de ne pas se soucier de la synchronisation quand on est dans une méthode locale de servlet.
Mais, quand j'utilise JNI, est ce que je garde ce côté multi-thread ? Est ce que je n'serais pas obligé d'interdire de synchroniser certaines parties ? Etant donné qu'en JNI, la librairie C/C++ n'est chargée qu'une seule fois (avec la classe contenant le loadLibrary), je me dis que c'est bien possible (et bien emmerdant si c'est le cas!).
Autre question : si vous ne savez pas répondre aux questions précédantes, vous n'auriez pas au moins une idée de la méthode que je pourrais utiliser pour tester ça ? Vérifier si j'ai raison ou non de m'inquièter avant que mon truc ne soit en prod.
 
Merci à ceux qui répondront...

Reply

Marsh Posté le 05-06-2003 à 10:28:19   

Reply

Marsh Posté le 05-06-2003 à 14:16:42    

...aucune idée !?

Reply

Marsh Posté le 05-06-2003 à 14:24:02    

Si tu encapsules les appels a ta lib C++ dans un singleton et que tu synchronise les methodes ?


---------------
Light is right
Reply

Marsh Posté le 05-06-2003 à 14:30:47    

Ben, je synchroniserai les accès JNI seulement si c'est obligatoire (qu'on perd le multi threading), parce que, niveau perfs, ça risque d'être une sacrée perte si je ne permet l'accès au code JNI qu'au un seul client à la fois!

Reply

Marsh Posté le 05-06-2003 à 14:48:32    

El_gringo a écrit :

Je me pose la question suivante :
Bon, si je n'me trompe pas, les servlets sont multi-thread, c à dire que chaque client est dans un thread séparé, c'est ce qui permet de ne pas se soucier de la synchronisation quand on est dans une méthode locale de servlet.

tu te trompes, rien ne garanti qu'un client = un thread :)
(n'oublions que web=deconnecté)
ton conteneur gere (eventuellement) plusieurs threads mais le meme peux servir pour plusieurs clients, et un meme client (en plusieurs requetes) peut utiliser different threads, je crois...
 
sinon pour le pb specifique à jni, je ne sais pas, mais ce n'est pas parce que la lib n'est chargée qu'une seule qu'elle ne peut pas etre utilisée par different threads, à priori !?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-06-2003 à 14:56:07    

the real moins moins a écrit :


mais ce n'est pas parce que la lib n'est chargée qu'une seule qu'elle ne peut pas etre utilisée par different threads, à priori !?


 
Je pense pas, non. Mais ce serait bien que je puisse tester ça, et je n'vois pas trop comment faire! :-(  
T'as pas une idée !?

Reply

Marsh Posté le 05-06-2003 à 15:18:04    

Je ne pense pas que le mécanisme des librairies dynamiques soit un pb pour le multithread, après ça dépend de ce que tu fais dans ta librairie.


---------------
Le Tyran
Reply

Marsh Posté le 05-06-2003 à 15:26:23    

LetoII a écrit :

Je ne pense pas que le mécanisme des librairies dynamiques soit un pb pour le multithread, après ça dépend de ce que tu fais dans ta librairie.


 
...évidement! Mais si j'ai pas de variables globales, tu penses que ça devrait aller !?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed