Подтвердить что ты не робот

Какова связь между методом main() и основным потоком в Java?

Мой преподаватель сказал мне, что основной поток является родительским потоком каждого потока, но он не может объяснить, почему.

Когда я пишу простую программу:

Class A{}

Затем он во время выполнения выдает исключение:

java.lang.NoSuchMethodError: main Exception in thread "main"

Существует ли какое-либо отношение между методом main() и основным потоком?

4b9b3361

Ответ 1

Есть ли связь между методом main() и Main Thread?

При запуске JVM создается поток с именем "Main". Ваша программа будет работать в этом потоке, если вы сами не создадите дополнительные потоки.

Первое, что делает "Основной" поток, - это искать ваш метод static void main(String[] argv) и вызывать его. Это точка входа в вашу программу.

Если вы хотите, чтобы все произошло "одновременно", вы можете создать несколько потоков и дать каждому что-то выполнить. Затем они будут продолжать делать это одновременно. JVM также создает некоторые внутренние потоки для фоновой работы, такие как сбор мусора.

Ответ 2

Во-первых, Main Thread is a parent thread of every thread является неоднозначным. В отличие от Process, в потоках Java нет понятия родительского и дочернего. У вас есть ThreadGroups для группировки потоков, а затем есть дочерние группы, но он отличается от Process в том смысле, что если родитель умирает, ребенок все еще остается.

Нить main - это поток, который запускает вашу программу, или просто запускает ваш метод public static void main(String... args).