В процессе обучения Java параллелизма я столкнулся с таким поведением, которое я не могу объяснить:Java Многопоточность нитей, заканчивающиеся в произвольном порядке
public class ThreadInterferrence implements Runnable {
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(new ThreadInterferrence());
t.start();
append("1", 50);
t.join();
System.out.println(value);
}
private static String value = "";
public void run() {
append("2", 50);
}
private static void append(String what, int times) {
for (int i = 0; i < times; ++i) {
value = value + what;
}
}
}
Почему программа генерации случайных строк? Что еще более важно Почему длина вывода зависит от? разве не всегда должно быть ровно 100 символов?
примеры вывода:
22222222222222222222222222222222222222222222222222
1111111111111111111111111111112121112211221111122222222222222
и т.д ..
Хорошо, что я до сих пор слежу за вами. Но почему размер выходной строки меняется? Разве не должно быть ровно 100 символов независимо от последовательности? –