Bonjours, je suis actuellement en deuxième année de DUT Informatique et nous avons attaqué la programmation multithreads/multiprocessus.
Nous avons vue les Threads en Java mais mon problème est la, j'ai du mal a comprendre le fonctionnement. Pour m’entraîner j’exécute un petit boue de code que j'ai trouvé sur internet pour essayer de comprendre le fonctionnement exact. Je sais qu'un thread à 3 états, "En vie, En attente ou mort". Je sais aussi que pour mettre en attente un processus on peut le faire de plusieurs manière, ici la méthode utilisé est "sleep". Mon problème est la compréhension et l'interprétation du résultat obtenue, je m'en remet donc à vous.
Voici le code:
La class principale:
La class du Thread:
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
20
21
22 public class Main { public Main() { FirstThreads t = new FirstThreads(); t.start(); while(t.isAlive() ) { System.out.println("Je suis le MAIN."); try { t.sleep(800); } catch (InterruptedException ex) {} } } public static void main(String[] args) { new Main(); } }
Le résultat:
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 public class FirstThreads extends Thread { public FirstThreads() { } public void run() { long start = System.currentTimeMillis(); while( System.currentTimeMillis() < ( start + (1000 * 5))) { System.out.println("Je suis le FIRSTTHREAD."); try { Thread.sleep(500); } catch (InterruptedException ex) {} } } }
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 Je suis le MAIN. Je suis le FIRSTTHREAD. Je suis le FIRSTTHREAD. Je suis le MAIN. Je suis le FIRSTTHREAD. Je suis le FIRSTTHREAD. Je suis le MAIN. Je suis le FIRSTTHREAD. Je suis le MAIN. Je suis le FIRSTTHREAD. Je suis le FIRSTTHREAD. Je suis le MAIN. Je suis le FIRSTTHREAD. Je suis le MAIN. Je suis le FIRSTTHREAD. Je suis le FIRSTTHREAD. Je suis le MAIN.
Partager