Win a copy of Node.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques this week in the Server-Side JavaScript and NodeJS forum!
  • 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
  • Ron McLeod
  • Rob Spoor
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Henry Wong
  • Liutauras Vilda
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Tim Holloway
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Mikalai Zaikin
  • Piet Souris

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
 
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic