le code
Bonjour,
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 public class Synchr1 //// SYNCHRONISER LES THREADS //// { public static void main (String args[]) { Nombres nbr = new Nombres() ; Thread calc = new ThrCalc (nbr) ; Thread aff = new ThrAff (nbr) ; System.out.println("Suite de carres - tapez retour pour arreter") ; calc.start() ; aff.start() ; Clavier.lireString() ; calc.interrupt() ; aff.interrupt() ; } } class Nombres { private int n=0, carre=0 ; public synchronized void calcul() { n++ ; carre = n*n ; } public synchronized void affiche () { System.out.println(n + " a pour carre " + carre) ; } } class ThrCalc extends Thread // la classe qui calcule le carré qui hirite de la classe thread { private Nombres nomb ; public ThrCalc (Nombres nomb) { this.nomb = nomb ; } public void run() { try { while (!interrupted()) { nomb.calcul (); sleep (50); } }catch (InterruptedException e) {} } } class ThrAff extends Thread { private Nombres nomb ; public ThrAff (Nombres nomb) { this.nomb = nomb ; } public void run () { try { while (!interrupted()) { nomb.affiche() ; sleep (75) ; } }catch (InterruptedException e) {} } }
ci-dessus un simple exemple sur la synchronisation des threads et je n'arrive pas à saisir comment fonctionne la synchronisation des threads en particulier dans ce petit exemple ma question est :
1- comment le code sait qu'il faut commencer par calculer le carré ensuite afficher d'une autre manière comment fonctionne la méthode synchronized ? dans ce code ?
A+
Partager