Bonjour j'ai vu cette question en surfant sur le net et j’étais pas sur de la réponse alors j'ai essayé de la compiler mais ça marche pas a mon avis la réponse est b et c. Merci de m'aider
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
public class TestFive { 
 
2. private int x; 
 
3. public void foo() { 
 
4. int current = x; 
 
5. x = current + 1; 
 
6. } 
 
7. public void go() { 
 
8. for(int i = 0; i < 5; i++) { 
 
9. new Thread() { 
 
10. public void run() { 
 
11. foo(); 
 
12. System.out.print(x + ", "); 
 
13. } }.start(); 
 
14. } }
Which two changes, taken together, would guarantee the output: 1, 2, 3, 4, 5, ? (Choose two.)


A. move the line 12 print statement into the foo() method
B. change line 7 to public synchronized void go() {
C. change the variable declaration on line 2 to private volatile int x; 1
D. wrap the code inside the foo() method with a synchronized( this ) block
E. wrap the for loop code inside the go() method with a synchronized block synchronized(this) { //
for loop code here }