Question sur la synchronisation
Bonjour,
J'aimerais savoir pourquoi, dans cet exemple donné, le modificateur "synchronized" ne permet pas d'afficher entièrement "BONJOUR" puis "AU REVOIR" ? Que faudrait-il changer dans ce code pour que cela soit le cas ?
Merci pour vos réponses.
Code:
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
| class Main {
public static void main(String[] arg) {
new Afficher("BONJOUR").start();
new Afficher("AU REVOIR").start();
}
}
class Afficher extends Thread {
String txt;
public Afficher (String t) {
txt=t;
}
synchronized public void run() {
for (int j=0;j<2;j++) {
for (int i=0;i<txt.length();i++) {
try { sleep(100); }
catch (InterruptedException e) {};
System.out.print(txt.charAt(i));
}
}
}
} |