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

avec Java Discussion :

Instructions aprés thread


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Janvier 2004
    Messages : 48
    Points : 28
    Points
    28
    Par défaut Instructions aprés thread
    Bonjour,

    J'aimerais exécuter des instructions après qu'un thread se soit exécuter. J'ai donc fait un petit test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class test
    {
    	public static void main (String[] args)
    	{
    		System.out.println("Debut");
    		Thread t1 = new monThread();
    		t1.start();
    		System.out.println("Fin");
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class monThread extends Thread
    {
    	public void run()
    	{
    		for (int i = 0; i<= 5; i++)
    		{
    			System.out.println(i);
    		}
    	}
    }
    ce qui m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Debut
    Fin
    0
    1
    2
    3
    4
    5
    Or j'aurais bien voulu que le message "Fin" s'affiche après le "5". Voyez vous ce que je veux dire?

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Tu peux attendre via la méthode join:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void main (String[] args)
    {
    	System.out.println("Debut");
    	Thread t1 = new monThread();
    	t1.start();
    	t1.join();
    	System.out.println("Fin");
    }

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ou ecrire ton code à la fin ta méthode run

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Vu la simplicité de son exemple, je pense que c'était dans un autre but qu'un vulgaire affichage.
    Et dans certains cas, le thread lancé peut ne pas avoir à connaître la tâche à lancer derrière.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Et l'humour, tu connais ?

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Oui, j'avais saisi le sens de ta remarque.
    Comme tu es modérateur, j'avais d'ailleurs supposé ne rien t'apprendre

    Mais vu que l'on est dans le forum "Débuter", je pense qu'il vaut mieux apporter des précisions.

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    D'ailleurs, c'était à moitié une blague, dans le sens où, quel est l'intérêt de créer un nouveau thread, pour ensuite, attendre que ce dernier se termine, pour exécuter de nouvelles instructions.
    On perd un peu l'intérêt du multi-thread.
    Mais bon, on ne sait pas ce que veut faire notre ami, donc ça n'aide pas.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Janvier 2004
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Merci . J'avais testé avec join() mais j'avais cette erreur à la compilation :

    "unreported exception java.lang.InterruptedException; must be caught or declared to be thrown"

    Donc je n'avais pas chercher d'avantage la source de l'erreur n'étant pas sur que join() soit la solution.

    Je vais me renseigner sur cette erreur, je maîtrise pas trop les exceptions pour le moment.

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    D'ailleurs si tu joues avec des affichages dans les thread, utilise system.err plutot que system.out, sinon tu risque d'avoir des affichages qui ne correspondent pas a la realité.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Janvier 2004
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    ok merci du conseil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pas d'exécution des instructions après boucle
    Par dubitoph dans le forum VBScript
    Réponses: 1
    Dernier message: 02/09/2013, 17h31
  2. Réponses: 6
    Dernier message: 21/07/2008, 20h06
  3. Réponses: 9
    Dernier message: 23/07/2007, 15h24
  4. instructions apres submit
    Par amika dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2005, 18h34
  5. fichier modifier apres instruction de lecture???
    Par cyberwaves dans le forum C++
    Réponses: 4
    Dernier message: 09/09/2004, 22h02

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