File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Threads and Synchronization and the fly likes Calling Directly run() method Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Threads and Synchronization
Bookmark "Calling Directly run() method" Watch "Calling Directly run() method" New topic

Calling Directly run() method

Faisal Farooqui

Joined: Jun 25, 2001
Posts: 13
class demo extends Thread {
public void run(){
for(int i=0;i<10;i++)
class test{
public static void main(string arg[]){
demo dt = new demo();;
System.out.println("main thread output");
select any 1

A) Code will give compilation error on line 10, since run can not be called directly.
B) Code will compile without error, but will not show any output.
C) Code will compile without errors, but will show output unsing current Thread only
D) Code will give compilation error on line 9.
Answer is C
Why???, any description pls.
I selected option A, if C is correct then why we call start() method, why dont directly run() method. is this call like any other method call, and it wont register it in Thread-sceduler?

Devavrat Bagayat

Joined: Jun 24, 2001
Posts: 25
ur guess was would've worked if there is call to start method of thread. but unfortunely there is no any such method.
hence, when u call run() meth w.r.t.the object, it treats that method as a ordinary method n excecutes it.
that's all.
Faisal Farooqui

Joined: Jun 25, 2001
Posts: 13
Marcela Blei
Ranch Hand

Joined: Jun 28, 2000
Posts: 477
If you call run, that is an ordinary method call and it will execute it like it. If you call the start method (you inherit it from the Thread class), your run method will behave like a Thread.
I agree. Here's the link:
subject: Calling Directly run() method
jQuery in Action, 3rd edition