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

Concurrence et multi-thread Java Discussion :

Attendre fin thread


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut Attendre fin thread
    Bonjour à tous,

    J'ai une petit (même peut-être gros) blanc en Java.

    Je commence mon programme par le lancement d'un thread qui va bosser dur pour ne pas ralentir l'ui.

    Dans mon main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Thread t = new Thread() {
    	public void run() {
    	...
    	}
    };
     
    t.start();
    La suite du main, j'aimerais la réaliser que si le thread a fini son travail. J'ai un blanc sur comment le faire en Java.

    J'ai déclaré un Object mutex, après le t.start() j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    synchronized(mutex) {
    	try {
    		wait();
    	} catch (InterruptedException e) {
    		e.printStackTrace();
    	}
    }
    en me disant que le wait allait attendre un notify sur le mutex que je réalise en fin de thread par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    synchronized(mutex){
    	notify();
    }
    Mais apparemment il aime pas du tout tout ça, et ça me plante mon soft (sur android).

    Quelqu'un pourrait-il m'aider svp ?

    Merci d'avance !!!

  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
    Salut,

    Citation Envoyé par PoZZyX Voir le message
    Mais apparemment il aime pas du tout tout ça, et ça me plante mon soft (sur android).
    Difficile de t'aider sans aucune information supplémentaire sur l'erreur...

    Par contre pour attendre un thread il est plus simple d'utiliser join().

    Citation Envoyé par PoZZyX Voir le message
    La suite du main, j'aimerais la réaliser que si le thread a fini son travail.
    Heu...
    Quel est l'intérêt de lancer un thread si c'est pour attendre qu'il ait fini son travail pour continuer ???

    a++

  3. #3
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut
    En fait difficile d'avoir plus d'info sur l'erreur, vu que ca fait simplement planter le programme sur android.

    Pour les raisons du thread a attendre, c'est parce que c'est une tache lourde et android affiche un warning si le main repond pas.

    Mais merci je vais essayer le join

  4. #4
    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
    Citation Envoyé par PoZZyX Voir le message
    En fait difficile d'avoir plus d'info sur l'erreur, vu que ca fait simplement planter le programme sur android.
    Et tu n'as vraiment aucun stacktrace ??

    Citation Envoyé par PoZZyX Voir le message
    Pour les raisons du thread a attendre, c'est parce que c'est une tache lourde et android affiche un warning si le main repond pas.
    Mais si tu attends que le thread se finisse c'est la même chose : le main ne répondra pas...

    Je ne connais pas Android, mais tu devrais te documenter sur la manière de gérer cela proprement... car là ton thread ne sert à rien.


    a++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Points : 199
    Points
    199
    Par défaut
    Citation Envoyé par PoZZyX Voir le message
    La suite du main, j'aimerais la réaliser que si le thread a fini son travail. J'ai un blanc sur comment le faire en Java.
    Et si la suite du main, au lieu de la faire dans ce main, tu la fait "dans l'autre thread" ?

    sinon +1 avec adiGuba.

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/10/2011, 13h45
  2. Attendre Fin Threads
    Par Drikcé dans le forum Langage
    Réponses: 19
    Dernier message: 28/06/2010, 15h00
  3. attendre fin root
    Par cada01a dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/06/2006, 18h29
  4. attendre fin opération
    Par Seb4657 dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2006, 15h25
  5. [MFC] attendre fin de demarrage d'un processus
    Par pitch21 dans le forum MFC
    Réponses: 16
    Dernier message: 14/10/2004, 09h35

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