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
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
Si tu oublie le start déjà sa peut pas marcher
Sinon tu peut essayer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Thread t = new Thread(); t.start();
Tu verra que les trois Threads affiche le même temps en milisecondes
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()); } }
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.
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 )
Partager