Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 631
Java_begins Avatar asked Jul 16 '13 06:07

Java_begins


People also ask

What is the name of thread which calls main method in Java?

The main thread is created automatically when our program is started. To control it we must obtain a reference to it. This can be done by calling the method currentThread( ) which is present in Thread class. This method returns a reference to the thread on which it is called.

Can we call Main method from main method?

Solution: Though Java doesn't prefer main() method called from somewhere else in the program, it does not prohibit one from doing it as well. So, in fact, we can call the main() method whenever and wherever we need to.

Is Main a thread?

The main thread is where a browser processes user events and paints. By default, the browser uses a single thread to run all the JavaScript in your page, as well as to perform layout, reflows, and garbage collection.

What is the task of main thread?

By default, the main thread of the renderer process typically handles most code: it parses the HTML and builds the DOM, parses the CSS and applies the specified styles, and parses, evaluates, and executes the JavaScript. The main thread also processes user events.


1 Answers

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.

like image 97
Thilo Avatar answered Sep 27 '22 18:09

Thilo