Ребят, вообще не дооняю, как этот код выполнятеся(
Когда мы пишем
public static int totalSpeechCount = 200;
public static int utterancesPerSpeech = 1000000;
Politician ivanov = new Politician("Иванов");
ivanov.join();
То выполняется весь класс
public static class Politician extends Thread {
private volatile int utteranceCount;
public Politician(String name) {
super(name);
start();
}
public void run() {
while (utteranceCount < totalSpeechCount * utterancesPerSpeech) {
utteranceCount++;
}
}
public int getSpeechCount() {
return utteranceCount / utterancesPerSpeech;
}
@Override
public String toString() {
return String.format("%s сказал речь %d раз", getName(), getSpeechCount());
}
}
Или только метод run?
public static int totalSpeechCount = 200;
public static int utterancesPerSpeech = 1000000;
И 2 й вопрос. Ни как не могу понять, метод run.
В нём переменная будет равна utteranceCount = 200_000_000, а когда запускаю debag, то когда доходит то строки
ivanov.join();
Она каким то чудом становится равной 200, но как?
Был бы благодарен каждому, кто поможет в решении данного вопроса)