![]() |
Exiting threads
Hello all,
In my game, I want to display an animation when I am loading the data (sounds and graphics). I plan to do this with another thread. My question : is the thread exited (thread killed, all the resources cleared) when you exit from the run() method? Or do I have to call a specific function to clean it? Thanks for your answers. Francois |
Re: Exiting threads
Ouabaine wrote:
> Hello all, > > In my game, I want to display an animation when I am loading the data > (sounds and graphics). I plan to do this with another thread. > My question : is the thread exited (thread killed, all the resources > cleared) when you exit from the run() method? Or do I have to call a > specific function to clean it? > > Thanks for your answers. > > Francois When the run() method exits, the thread is dead and no longer consumes thread-related resources. The thread object itself, though, may persist if you still have a reference to it. For example: MyThread thread = new MyThread(); thread.start(); // Do other stuff here. // Thread runs on its own, eventually dies. // At this point, if the thread variable still points // to an instance of MyThread, then it and everything it contains // is still in memory. // Do this: thread = null; // to make it eligible for garbage collection |
Re: Exiting threads
Chris wrote:
> When the run() method exits, the thread is dead and no longer consumes > thread-related resources. The thread object itself, though, may persist > if you still have a reference to it. > > For example: > > MyThread thread = new MyThread(); > thread.start(); > > // Do other stuff here. > // Thread runs on its own, eventually dies. > > // At this point, if the thread variable still points > // to an instance of MyThread, then it and everything it contains > // is still in memory. > > // Do this: > > thread = null; Or better yet, just have the variable 'thread' pass out of scope. Typical use: public static void main( String [] args ) { Runnable r = factory.createBasedOn( args ); Thread t = new Thread( r ); t.start(); } 't' goes out of scope after main() returns, so the variable reference vanishes, enabling GC for the Thread object when it's finished. This is idiomatically emphasized with public static void main( String [] args ) { Runnable r = factory.createBasedOn( args ); new Thread( r ).start(); } -- Lew |
Re: Exiting threads
Thanks to you both.
Francois |
| All times are GMT. The time now is 12:16 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.