Я пытаюсь узнать о потоках, и это заставило меня задуматься. Пожалуйста Тэ посмотрите на следующее -Какой поток вызывает строку?
public static void main(String [] args) { // line 1
Thread exampleThread = new Thread() { // line 2
public void run() { // line 3
//some code // line 4
........... // line 5
........... // line 6
} // line 7
}; // line 8
// line 9
// Which thread invokes this line? // line 10
exampleThread.start(); // line 11
// line 12
// Which thread invokes this line? // line 13
exampleThread.join(); // line 14
} // line 15
Я думаю основной поток вызывает линию 11.
Но как насчет Строка 14? Какой поток вызывает это? Главная или exampleThread? Не могли бы вы объяснить?
Оба являются тем же «вызывающим» потоком. Вызывающий поток запускает exampleThread и, вызывая соединение, будет ждать его завершения - вы блокируете вызывающий поток, пока exampleThread не завершится. Вы можете распечатать системное время перед тем, как начать поток, а затем в вашем примере. Слишком сложная логика в течение 2 секунд, а затем в конце распечатать тайм-аут снова, вы должны увидеть, что вызывающий поток заблокирован на 2 секунды, вместо того, чтобы немедленно возвращаться назывался. –