Rovas, calling Thread.start() on one line and Thread.join() on the same thread a line later is not the most useful of
patterns. It's like running the code without starting a thread, only there's a lot more overhead. I'm having trouble imagining circumstances when you'd ever want to join() immediately after start()ing. I guess it would keep the code from mucking with your ThreadLocals or throwing unexpected Errors/RuntimeExceptions at you.
I've added a
word to my response above to clarify.