What I believe is garbage collector collects an object when there are no references of an object in the memory. In case of thread, the process is running so thread objects won't be collected by garbage collector.
Every object tree must have one or more root objects. As long as the application can reach those roots, the whole tree is reachable via
javabook.compuware.com/content/memory/how-garbage-collection-works.aspx