• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

What are those two threads???

 
Ranch Hand
Posts: 113
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi friends i am new to Threads.When i run this program i can see one thread created by me and another one is the "main" thread.When i call t.start()m my thread starts.In the docs for start they gave as

The result is that two threads are running concurrently: the current thread (which returns from the call to the start method) and the other thread (which executes its run method).


In the above my new thread is current thread.Please say me the other thread which executes the run method




System.out.println("Main Thread: " + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("Main thread interrupted.");
}
System.out.println("Main thread exiting.");
}
}

[/CODE]
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm not sure what you're asking ... maybe why your program displays something like "Child thread: Thread[Demo Thread,5,main]"? Thread's toString() method "Returns a string representation of this thread, including the thread's name, priority, and thread group."

I haven't seen Runnable() classes that start themselves the way you did very often. I'm not sure if that's kind of slick or if it is risky to start the thread before the constructor is well and truly done. I'm pretty sure it's risky if your class is not final. This is more common, I think:
 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Ganesh,

The current thread would be the "main" thread used to start your program, i.e. public static void main() and anything else it calls.

The second thread is then created from your line "t = new Thread(this, "Demo Thread");"
In this line you have created a new thread t that has a name of "Demo Thread" and has the run() method of your "NewThread" object which implements the Runnable interface registered as the run method to be invoked when the thread t is started.

When you implement the Runnable interface you also have to override the public void run() method.

Hope this makes things a little clearer.

Cheers,

Zeb
 
reply
    Bookmark Topic Watch Topic
  • New Topic