cant we call run() method directly instead of calling indirectly through the start()
method ? if we do so then what is the problem ?
Answers were Sorted based on User's Feedback
Answer / will
Calling run() without calling start() will effectively
execute run() in the current thread.
Calling start() will kick off a seperate thread,from your
current thread, which will then call run().
| Is This Answer Correct ? | 12 Yes | 4 No |
Answer / srinu
Calling run() without calling start() will effectively
execute run() in the current thread.then that time only one
thread it will be created.but n't achiving the mulithreading
concepts.
ex:-
class Sample extends Thread
{
Sample()
{
System.out.println("hai how are u");
}
public void run()
{
System.out.println("run method will be called");
}
}
public class ThreadExample
{
public static void main(String k[])
{
Sample s=new Sample();
s.run();
int k1=Sample.activeCount();
System.out.println(k1);
}
}
OUTPUT:
hai how are u
run method will be called
1
IN this program only one thread will be created.
start()--->
Calling start() will kick off a seperate thread,from your
current thread, which will then call run().
EX:-
class Sample extends Thread
{
Sample()
{
System.out.println("hai how are u");
}
public void run()
{
System.out.println("run method will be called");
}
}
public class ThreadExample
{
public static void main(String k[])
{
Sample s=new Sample();
s.start();
int k1=Sample.activeCount();
System.out.println(k1);
}
}
OUTPUT:
hai how are u
run method will be called
2
In this program 2 threads will be started.
| Is This Answer Correct ? | 7 Yes | 2 No |
Answer / neeraj_passion2001
yes you can call run() as ordinary method.
but while calling run() explicitly u can not achieve multi
threading.
| Is This Answer Correct ? | 8 Yes | 5 No |
Answer / damodar narayan
Calling run() method is just like calling a method in java. So when called, it just gets executed but "we do not get the thread functionality by calling the run() method". But calling start() method registers your program with the thread scheduler and hence it achieves the threading functionality. Start in turn calls the runs method.
Hope its clear.
| Is This Answer Correct ? | 3 Yes | 0 No |
Answer / rajkiran bande
@Answer 5 : Yes. But you'll eventually end up in getting
IllegealThreadStateException when run() is invoked for the
second time.
| Is This Answer Correct ? | 2 Yes | 0 No |
what is the serialization?
What is the difference between Object Code and ByteCode? Why do people keep saying that bytecode is like the intermediate of source and object code? Also, which is better/commonly used and why? Please keep in mind that I am a beginner, please keep all terminology fairly simple. Thanks!
What is a singleton in java?
How can c# app request minimum permissions? : java security
What kind of thread is the garbage collector thread?
How do you check if java is installed on windows command prompt?
What is dialect in java?
What does public static void main(string[]) mean?
What is the difference between Logical Parallelism and Physical Parallelism?
What are messages in java?
What is java api?
What is adoptopenjdk?