threadlocals

Performance of ThreadLocal variable

How much is read from ThreadLocal variable slower than from regular field? More concretely is simple object creation faster or slower than access to ThreadLocal variable? I assume that it is fast enough so that having ThreadLocal<MessageDigest> instance is much faster then creating instance of MessageDigest every time. But does that al...

When and how should I use a ThreadLocal variable?

When should I use a ThreadLocal variable? How is it used? ...

Purpose of ThreadLocal ?

Possible duplicate: When and how should I use a Threadlocal variable The purpose of ThreadLocal as given here states that the variable is local to any Thread accessing an object containing the ThreadLocal variable. What difference does it make, in having a ThreadLocal variable as a member of a class and then making it local to a Threa...

ThreadLocal implementation

With reference to my earlier question, going a bit further, What are the disadvantages of using ThreadLocals as opposed to local variables How are they implemented Are session variables ThreadLocals Are there more examples of ThreadLocals used frequently ...

Java instance variable visibility (ThreadLocal)

In the class ReentrantReadWriteLock is the following curious comment: transient ThreadLocalHoldCounter readHolds; Sync() { readHolds = new ThreadLocalHoldCounter(); setState(getState()); // ensures visibility of readHolds } what does it mean by "ensures visibility"? The reason I ask is that I have a situation where it looks a...

What is so bad with threadlocals

Everybody in Django world seems to hate threadlocals(http://code.djangoproject.com/ticket/4280, http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser). I read Armin's essay on this(http://lucumr.pocoo.org/2006/7/10/why-i-cant-stand-threadlocal-and-others), but most of it hinges on threadlocals is bad because it is inelegant. I...

Threadlocal behaviour for a private static final instance

Hi I have class definition like this public class JdbcInterceptor { private static final JdbcInterceptor instance = new JdbcInterceptor(); private static ThreadLocal<Boolean> dontIntercept = new ThreadLocal<Boolean>(); public static JdbcInterceptor getInstance() { return instance; } public void skipIntercept() { dontIntercept.set...

Porting JDK1.5 ThreadLocal code to JDK1.4

I have below piece code which runs on JDK5 private static ThreadLocal<String> messages = new ThreadLocal<String>(); private static ThreadLocal<Boolean> dontIntercept = new ThreadLocal<Boolean>() { @Override protected Boolean initialValue() { return Boolean.FALSE; } }; I wish to run it on JDK1.4. Please advice w...

ThreadLocal (and Singleton) in EJB Container

I've written an authorization system which relies on objects representing the current user. To simplify programming and increase performance I want to hold those objects in a ThreadLocal after the user has logged in. It looks like this: public class UserCache { private static final ThreadLocal<User> cache = new ThreadLocal<User>(...

ThreadLocal on Google App Engine (GAE)

I would like to make some request-wide data available in my app engine application. Examples: The URL for which the request was made. Authentication information. I see that ThreadLocal is on the whitelist: http://code.google.com/appengine/docs/java/jrewhitelist.html Is ThreadLocal a good and safe way to make this information avai...

Why is using thread locals in Django bad?

I am using thread locals to store the current user and request objects. This way I can have easy access to the request from anywhere in the programme (e.g. dynamic forms) without having to pass them around. To implement the thread locals storage in a middleware, I followed a tutorial on the Django site: http://code.djangoproject.com/wi...

Design pattern name: Is it a factory?

The following class shows something similar to a real use case. It returns always the same instance for the same thread. public class LookingForName { private static final ThreadLocal<Something> threadLocal = new ThreadLocal<Something>(){ @Override protected Something initialValue() { ...

Do I need to call ThreadLocal.remove in the following case

Instead of writing the following non-thread safe method. private static final Calendar calendar = Calendar.getInstance(); public void fun() { // Going to call mutable methods in calendar. } I change it to a thread safe version. public void fun() { final Calendar calendar = Calendar.getInstance(); // Going to call mutabl...

Does thread-local mean thread safe?

Specifically I'm talking about Python. I'm trying to hack something (just a little) by seeing an object's value without ever passing it in, and I'm wondering if it is thread safe to use thread local to do that. Also, how do you even go about doing such a thing? ...

Lots of ThreadLocalMap entries in memory

Consider a very large Java VM with a great many threads running a web server. Now consider a sample of the output generated by jmap -histo that looks something like this: 4: 5989163 191653216 java.lang.ThreadLocal$ThreadLocalMap$Entry 10: 46786 49012000 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry; 86: ...

Is it thread-safe to store data inside a static field when deploying on Google App Engine?

I was browsing through the code of Vosao CMS, an open source CMS hosted on Google App Engine (which I think is an awesome idea), and I stumbled upon the following code inside the CurrentUser class: /** * Current user session value cache class. Due to GAE single-threaded nature * we can cache currently logged in user in static property...