Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

3
  • Thanks for reply. I think that if I agree to terminate the thread without cathing internally the OutOfMemoryError, than the memory previously allocated by the object inside the run() is released, then it might be worth thinking of restarting the thread, but with a new call to the function run(). What do you think avout this Commented Feb 12, 2012 at 11:12
  • The memory isn't your only problem. Your application state can be pretty much anything (ie. inconsistent), if the thread terminated by an OOME was in the middle of processing and touched the state(s) of some shared object(s), which other threads also use. Also, if another thread was waiting for some monitor (mutex) the terminated thread was holding, or similar, the other thread could become deadlocked. In most cases writing the recovery logic and checking will be very difficult, as there are far too many variables and things to check before you can be sure the application has REALLY recovered Commented Feb 12, 2012 at 11:18
  • Ok, I've understand. Thanks alot for the clarification Commented Feb 12, 2012 at 11:34