Java_begins
Java_begins

Reputation: 1679

What is the relation between the main() method and main thread in Java?

My tutor told me that the main thread is the parent thread of every thread, but he is not able to explain why.

When I write a simple program:

Class A{}

Then it at the time of execution it throws an exception:

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

Is there any relation between the main() method and the main thread?

Upvotes: 27

Views: 16465

Answers (2)

Jatin
Jatin

Reputation: 31724

Firstly Main Thread is a parent thread of every thread is ambiguous. Unlike Process, in Java threads there is no concept of parent and child. You do have ThreadGroups to group Threads and then have child groups, but it is different from Process in the sense that if parent dies, the child still remains.

The main thread is the thread that starts your program, or simply which runs your public static void main(String... args) method.

Upvotes: 11

Thilo
Thilo

Reputation: 262474

Is there any relation between main() method and Main Thread ?

When the JVM starts, it creates a thread called "Main". Your program will run on this thread, unless you create additional threads yourself.

The first thing the "Main" thread does is to look for your static void main(String[] argv) method and invoke it. That is the entry-point to your program.

If you want things to happen "at the same time", you can create multiple threads, and give each something to execute. They will then continue to do these things concurrently. The JVM also creates some internal threads for background work such as garbage collection.

Upvotes: 48

Related Questions