Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

When a Thread Dies

 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a question about the lifetime of a thread and the Garbage Collector.
If I have something like the following:

And then somewhere else in my code I have:
MyThread thread = new MyThread();
thread.start();
So the thread runs, but it is not a infinite loop so when the execution ends inside the thread, does the thread die? And then is the thread object available for the Garbage Collector?
In case you are wondering why I am running a thread that does not have an infiniate loop of any kind like most threads probably will, I am using the SwingUtilities.invokeLater() from a JButton actionEvent in quering a Database that takes a little time, I don't want the ActionEvent to be hung up on waiting for that process to finish, but it does finish. So the thread should end.
Anyway, that is my question.
Thanks
[ July 31, 2002: Message edited by: Gregg Bolinger ]
 
John Dale
Ranch Hand
Posts: 399
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The thread dies when the run() method exits, and, like any other object, the thread and Runnable object are each eligable for GC when there are no reference to it (except from other object eligable for GC).
 
Mr. C Lamont Gilbert
Ranch Hand
Posts: 1170
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Threads die when the run method ends. If you never started the thread, then the thread object will die when the thread group it belongs to dies.
Using swingInvoke later does not actually create a new thread, it just executes the Run method of your object inside of the swing thread, later
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic