let suppose you program is system and there may be may subsystems, how can you pass message between these subsystems ..lots of way in which you can do this ..one way is global variable.
think as subsystems is thread and that thread calls/calls lots of new threads ( sub subsystems ) in this sort of scenario you create ThreadLocal variable in parent class and use that in sub sub systems.
