-5- |
|
|
II. Possibilités offertes par le JNI5. JNI et le threadingPuisque Java est un langage multithread, plusieurs threads peuvent appeler une méthode native en même temps (la méthode native peut être suspendue au milieu de son traitement lorsqu'une seconde thread l'appelle). C'est au programmeur de garantir la protection de l'appel natif ; c'est à dire qu'il ne doit pas modifier de données partagées de façon non contrôlée. Pour effectuer cette gestion, il y a deux possibilités :
De plus, on ne doit jamais passer le pointeur JNIEnv à travers des threads, car la structure interne sur laquelle il pointe est allouée thread par thread et contient des informations qui n'ont de sens que dans cette thread particulière.
L'ensemble des particularités présentées jusqu'ici ne sont qu’un échantillon des possibilités offertes par le JNI depuis la version Java 1.2. On pourrait s’attarder sur d'autres sujets tels que le passage d’un strucure C vers le Java. Mais l'objectif de cette présentation est avant tout d'aider l'utilisateur à comprendre l'utilité du JNI. |
|
|