This all goes way back to the days of WebWork and how much they loved
statics.  WebWork basically used static singletons for everything, causing
a) a really complicated startup order and b) the ability to only run one
instance of the framework.  In those days (and perhaps still?) there wasn't
just one filter but at least two to allow proper thread-local cleanup,
because what wasn't accessed statically was accessed statically using
thread locals as the means (ActionContext.getContext() for example).

Therefore, with two filters that contain state that needs to be accessed
statically, we were limited to threadlocals to track that state.  When I
was working on it, I got it to the point that most statics were gone and we
had a decent injection system to avoid all the static accessors, but they
were still there in case you needed them.  I don't know what the code is
like now, but it sounds like perhaps it still hasn't completely gotten away
from statics and threadlocals.

As a side note, back then (2008?) we did some profiling and found that
actually all the thread locals were eating up a bunch of time in the
request, so it is more than just a general "icky" sense that should drive
their removal.

Again, my knowledge is pretty dated, but that's where things came from.

Don


On Tue, Apr 23, 2013 at 7:40 PM, ppm10103 <[email protected]> wrote:

>
> At 2013-04-24 03:44:22,"Lukasz Lenart" <[email protected]> wrote:
>
> >2013/4/23 ppm10103 <[email protected]>:
> >> The Dispatcher  will have only one instance,
> >> it bind to ThreadLocal  is for what?
> >
> >For thread safety, then you can access Dispatcher from a thread
> >without synchronisation. That's my opinion :-)
> >
> >
> >Regards
> >--
> >Ɓukasz
> >+ 48 606 323 122 http://www.lenart.org.pl/
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [email protected]
> >For additional commands, e-mail: [email protected]
> >
>
> Thanks for your help,but I look into the sourcecode ,the Dispatcher will
> only be one instance,
> so even put it in the ThreadLocal,every thead alse access the same
> Dispatcher  instance,
> so I think it's not for thread safe,so I still want to konw it's for what?

Reply via email to