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
Which two changes, taken together, would guarantee the output: 1, 2, 3, 4, 5, ? (Choose two.)
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. } }
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 }
Partager