File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Threads and Synchronization and the fly likes When a Thread Dies Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Threads and Synchronization
Bookmark "When a Thread Dies" Watch "When a Thread Dies" New topic
Author

When a Thread Dies

Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15286
    
    6

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 ]

GenRocket - A Test Data Generation Platform
John Dale
Ranch Hand

Joined: Feb 22, 2001
Posts: 399
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

Joined: Oct 05, 2001
Posts: 1170

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
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: When a Thread Dies
 
Similar Threads
Try this question I made up.
Threading
how can I kill a thread?
Who decides when to reclaim objects?
new object in method