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

Java Discussion :

Bloquer l'execution de la méthode main


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut Bloquer l'execution de la méthode main
    Salut,
    svp, j'ai une petite question concernant les Thread

    j'ai crée un thread t1 qui contient un compteur et il ne sortira de cette boucle que si le compteur à atteint la valeur 100, néanmoins, avant que se thread ne termine il m'execute les autres instructions qui se trouve dans ma classe main alors que je voudrai qu'il ne m'execute que mon thread puis il donne la main aux autre instruction de la classe main.
    voici mon code:

    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
    19
     
    public class TestThread {
        static Thread t1; 
     
     
    	public static void main(String[] args) {
    		  t1=new Thread(){
    	        	public void run(){
    	        		int i=0;
    	        		while(i<10){
    	        			System.out.println("Thread 1 is running, iteration : "+i);
    	        			i++;
    	        		}
    	        	}	        	
    	        };
    	        t1.start();
    	        System.out.println("MAIN");     
       }
    }
    et je voudrai qu'il m'affiche :

    Thread 1 is running, iteration : 0
    Thread 1 is running, iteration : 1
    ...
    Thread 1 is running, iteration : 9
    Main


    au lieu de

    Thread 1 is running, iteration : 0
    Thread 1 is running, iteration : 1
    ...
    Thread 1 is running, iteration : 9

    Main


    Merci de me dire comment faire

  2. #2
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Ajoute t1.join(); après t1.start();

    A+
    Hydraland

  3. #3
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Question : quel est l'intérêt de faire un thread dans ce cas là ???
    Pourquoi ne pas exécuté directement le code ???
    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) {
    	int i=0;
    	while(i<10){
    		System.out.println("iteration : "+i);
    		i++;
    	}
    	System.out.println("MAIN");     
    }
    a++

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Merci hydraland pour ta réponse
    C'est bien ce que j'ai voulu.
    néanmoins, j'ai essayé d'utiliser un objet de type Timer mais ce dernier ne contient pas une méthode join
    Comment faire dans ce cas?
    Merci d'avance

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Question : quel est l'intérêt de faire un thread dans ce cas là ???
    Pourquoi ne pas exécuté directement le code ???
    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) {
    	int i=0;
    	while(i<10){
    		System.out.println("iteration : "+i);
    		i++;
    	}
    	System.out.println("MAIN");     
    }
    a++
    Bon je veux utilisé unThread car normalement je vais exécuter une fenetre dans ce thread et en fonction du résultat retourner par ce thread je vais continuer le reste de mon traitement dans la classe main
    Mais j'ai voulu tester tous d'abord mon idée avant d'attaquer le reste
    Merci

  6. #6
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Ganymede Voir le message
    Bon je veux utilisé unThread car normalement je vais exécuter une fenetre dans ce thread et en fonction du résultat retourner par ce thread je vais continuer le reste de mon traitement
    Merci
    Si c'est une interface graphique tu pars dans le mauvais sens... il faudrait partir sur un mode évenementielle.

    Et de toute manière cela ne répond toujours pas à ma question : quel intérêt de faire un nouveau thread si le thread courant est endormis pendant tout ce temps ???


    a++

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Si c'est une interface graphique tu pars dans le mauvais sens... il faudrait partir sur un mode évenementielle.

    Et de toute manière cela ne répond toujours pas à ma question : quel intérêt de faire un nouveau thread si le thread courant est endormis pendant tout ce temps ???


    a++
    Dans ce cas il ne sert à rien mais dans le cas d'utilisation de fenêtre il m'a servit beaucoup car je ne veux pas qu'il exécute le reste de la méthode main avant que l'utilisateur clique un bouton de la fenêtre a développe

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Si c'est une interface graphique tu pars dans le mauvais sens... il faudrait partir sur un mode évenementielle.
    tu peut me donner plus d'info sur le mode évenementielle qui peut m'aider dans mon cas
    Merci d'avance

Discussions similaires

  1. paramêtres de la méthode main()
    Par aazize dans le forum C
    Réponses: 1
    Dernier message: 17/12/2006, 10h27
  2. Bloquer un executable
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 12
    Dernier message: 07/09/2006, 17h03
  3. [JBX] Spécifier la méthode main
    Par fafa139 dans le forum JBuilder
    Réponses: 1
    Dernier message: 15/08/2006, 11h36
  4. Débuts : classe / méthode main
    Par P@t dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 10/07/2004, 03h45

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