Проблема здесь заключается в том, что вы запускаете потоки, и они не полностью завершены к моменту вашего вызова для записи вывода на консоль.
Цикл начинается с i нитей, мы представим, что пчелы собирают их как работу, а не все едут к одному источнику пищи, поэтому одни возвращаются дольше, чем другие; затем, возвращаясь в улей, мы вдруг говорим: «Эй, пчелы, мне нужно количество сотрудников!», «... 1, 2, 3 ... только три?» Нет, некоторые i-3 все еще крадутся вокруг!
Итак, идея в том, что у нас должен быть индикатор того, когда работа завершена, или своего рода сигнал самонаведения, чтобы вернуть всех пчел в улей для поголовья. Это может быть сделано с помощью Join
или ручной проверки состояния (которая, по сути, заставляет вас продержаться до возвращения последнего соседа).