ThreadLocal使用场合主要解决多线程中数据数据因并发产生不一致问题。ThreadLocal为每一个线程的中并发访问的数据提供一个副本,经过访问副原本运行业务,这样的结果是耗费了内存,单大大减小了线程同步所带来性能消耗,也减小了线程并发控制的复杂度。html
ThreadLocal和Synchonized都用于解决多线程并发访问。可是ThreadLocal与synchronized有本质的区 别。synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每个线程都提供了变量的副本, 使得每一个线程在某一时间访问到的并非同一个对象,这样就隔离了多个线程对数据的数据共享。而Synchronized却正好相反,它用于在多个线程间通 信时可以得到数据共享。多线程
Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。并发
ThreadLocal类详解请查看http://www.cnblogs.com/dolphin0520/p/3920407.html ThreadLocal类实例请查看http://blog.csdn.net/yemaozi2009/article/details/39212167性能