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 :

3 Thread dans une boucle for


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mars 2011
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 99
    Par défaut 3 Thread dans une boucle for
    bonjour

    svp j'ai fait ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(i=1;i<=3;i++)
    			  {
     
     
    				  Thread t=new Thread()
     
    			  }

    Est ce que les 3 thread créé s'exécutent en parallèle ou non dans le boucle For

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Par défaut
    Si tu oublie le start déjà sa peut pas marcher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Thread t = new Thread();
    t.start();
    Sinon tu peut essayer
    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
    public class MyThread extends Thread{
     
    	public static void main (String[] args){
     
    		for(int i=0;i<3;i++){
    			Thread t = new MyThread();
    			t.start();
    		}
    	}
    	@Override
    	public void run(){		
    		System.out.println(System.currentTimeMillis());
    	}
     
    }
    Tu verra que les trois Threads affiche le même temps en milisecondes

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par maxime8n Voir le message
    Si tu oublie le start déjà sa peut pas marcher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Thread t = new Thread();
    t.start();
    Certes.

    Citation Envoyé par maxime8n Voir le message
    Sinon tu peut essayer
    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
    public class MyThread extends Thread{
     
    	public static void main (String[] args){
     
    		for(int i=0;i<3;i++){
    			Thread t = new MyThread();
    			t.start();
    		}
    	}
    	@Override
    	public void run(){		
    		System.out.println(System.currentTimeMillis());
    	}
     
    }
    Tu verra que les trois Threads affiche le même temps en milisecondes
    Euh. Et alors ?


    Pour répondre à la question : oui, des Threads ça s'exécute en parallèle. C'est à ça que ça sert. On a pas de raison d'aller chercher des Thread, si ce n'est pas pour que ça s'exécute en parallèle.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Euh. Et alors ?.
    Bah tu vois que les trois threads on démarré en même temps

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par maxime8n Voir le message
    Bah tu vois que les trois threads on démarré en même temps
    Non. Ils ont démarré l'un après l'autre, mais à très peu de temps d'intervalle.

    On ferait trois fois System.out.println(System.currentTimeMillis()); sans aucun thread, ça ferait pareil.
    En principe ils sont séparés par un peu plus de temps, parce que là on se tape des IO bloquantes en séquence, alors que les threads, justement, passent la main à d'autres threads quand ils tombent sur une IO bloquante, ce qui fait que les threads ne font qu'appeler trois fois System.currentTimeMillis() et ensuite seulement affichent leurs résultats.
    Ça augmente les chances d'avoir peu de temps de différence, mais ça ne garantit pas d'en avoir moins qu'avec une approche en séquence.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Inscrit en
    Mars 2011
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 99
    Par défaut
    merci beaucoup

    donc lorsque je mets beaucoup de Thread: plus que 20 Thread dans un boucle FOR il n'est pas garantit d'optimiser le temps d’exécution ( c'est mon but )

Discussions similaires

  1. multi ouverture de la console dans une boucle for
    Par jamesleouf dans le forum C++
    Réponses: 2
    Dernier message: 16/03/2006, 21h26
  2. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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