Java ThreadLocal模式
设计相关 ThreadLocal模式
1,ThreadLocal 不是用来解决共享对象的多线程访问问题的,ThreadLocal和多线程并发没有什么关系。ThreadLocal模式是为了解决单线程内的跨类跨方法调用的(robbin) 。
但是有的地方还是与多线程有点关系的如下:
ThreadLocal不是用来解决对象共享访问问题的
我不太同意这个观点,现在比如有如下的代码。这个format方法有2个线程循环的访问,每次访问完可以放回线程池中,但是因为SimpleDateFormat不是线程安全的类,所以这样访问肯定会出现并发的错误!
来看一下Hibernate源码
ThreadLocal 以空间换时间
Synchornized 以时间换空间
http://www.iteye.com/topic/757641
总述:
1 Threadlocal解决了单线程跨类跨方法的调用(robbin)
2 Threadlocal在某些情况下解决了多线程并发的问题。以空间换了时间,ThreadLocal 以空间换时间 Synchornized 以时间换空间