Вот вопрос от SCJP отвала:Получение вывода с двумя нитями, исполняющих
public class Threads1 {
int x=0;
public class Runner implements Runnable{
public void run(){
int current=0;
for (int i=0; i<4; i++){
current = x;
System.out.print(current + ',');
x=current +2;
}
}
}
public static void main(String[] args){
new Threads1().go();
}
public void go(){
Runnable r1 = new Runner();
new Thread(r1).start();
new Thread(r1).start();
}
}
Каковы возможные результаты?
А. 0, 2, 4, 4, 6, 8, 10, 6,
Б. 0, 2, 4, 6, 8, 10, 2, 4,
С. 0, 2, 4, 6, 8, 10, 12, 14,
D. 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14,
Е. 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 4, 6, 8, 10, 12, 14,
В свалке он говорит, что ответы A и C. Однако я не знаю, h ow ответ A может быть возможным, поскольку последний выход (6) меньше, чем предыдущие.