IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[JNI] Class Thread et Synchronisation


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut [JNI] Class Thread et Synchronisation
    Bonjour,
    je développe actuellement une IHM en java et j'appelle du code stocké dans une librairie (dll pour windows et so pour linux) avec JNI.
    J'ai besoin de pouvoir lancer un thread avec le code de cette dll, le mettre en pause et l'arrêter.
    Comment puis-je faire ? je pensais à 2 solutions mais j'aimerais votre avis :
    1. Utiliser les threads java : la class Thread fournie toutes les méthodes dont j'ai besoin. Je peux donc appeller le code de la Dll dans ma fonction run et utiliser les méthodes interrupt, resume et destroy pour le reste...
    2. Gérer la synchro dans la dll mais je ne suis pas sur que cela fonctionne.

    J'attends votre avis
    Merci
    La vitesse de la lumière étant supérieure à celle du son, il apparaît normal que beaucoup de gens paraissent brillants jusqu'à ce qu'ils l'ouvrent.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: [JNI] Class Thread et Synchronisation
    Salut,


    Pour moi c'est la solution Java qui me semble le plus approprié... Il faut juste voir si cela ne pose pas de problème avec ton code natif (que fait-il au juste ?).

    Surtout qu'il me semble qu'il n'existe rien de standard pour la gestion des thread en natif, et qu'il te faudra utiliser des API différentes, et donc recoder deux fois la gestion des threads...

    a++

  3. #3
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut
    Je n'ai pas compris pourquoi tu dis qu'il faudrait recoder deux fois la gestion des threads ?

    Pour l'instant, je fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class Scan extends Thread {
     
        private String fileName;
     
        public void run() {
            System.out.println("Running...");
            Scan.start(fileName);
        }
     
        static { System.loadLibrary("MyLib"); }
     
        public static native void startScanFile(String fileName);
     
        public Scan(String n) {
            fileName=n;
        }
    }
    Sinon, mon code natif effectue une connexion sur un site web pour récupérer des données.

    J'ai lu que les méthodes stop, resume,... était deprecated. Je peux toujours les utiliser mais le fonctionnement n'est pas garanti, c'est ca ?

    Si je veux gérer les threads dans le code natif, comment puis je faire pour envoyer un évènement en java ?
    Je précise : j'ai une interface avec 3 boutons :
    - start qui démarre le thread
    - pause/resume qui le met en pauuse ou permet la reprise
    - stop pour l'arrêter

    Comment dois je coder la fonction pause pour mettre mon code natif en pause ?

    Merci
    La vitesse de la lumière étant supérieure à celle du son, il apparaît normal que beaucoup de gens paraissent brillants jusqu'à ce qu'ils l'ouvrent.

  4. #4
    Membre habitué Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Il me semble que ces méthodes sont déprécated car elles gèrent mal l'arret si ton thread est en train de faire une section critique de code et qu'il se fait arreter en plein millieu, ca le fait pas trop.
    Mais d'apres la javadoc, la méthode interrupt() pour un thread n'est pas déprécated, donc elle dois fonctionner. A tester...

Discussions similaires

  1. Méthode de classe "threadée"
    Par Ecco59 dans le forum C++
    Réponses: 13
    Dernier message: 16/01/2007, 14h20
  2. [THREAD] Problème synchronisation
    Par goddet dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 25/10/2006, 09h16
  3. interrupt() de la classe thread
    Par canigu dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 25/12/2005, 14h01
  4. Héritage d'une classe thread
    Par SamCB500 dans le forum MFC
    Réponses: 4
    Dernier message: 07/07/2005, 15h35
  5. [MFC] classe thread
    Par Joeleclems dans le forum MFC
    Réponses: 13
    Dernier message: 24/05/2005, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo