1、概述ThreadLocal,可以理解为线程的局部变量,作用就是为每一个使用该变量的线程都提供一个变量值的副本,每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。ThreadLocal是如何做到为每一个线程维护变量的副本的呢?每个线程中都有一个ThreadLocalMap(Thre...
分类:
其他好文 时间:
2015-04-07 00:34:17
阅读次数:
205
熟悉Looper源码的朋友可能知道,looper与线程绑定并不是直接set进去的,而是通过ThreadLocal这个东西间接将looper的引用交给当前线程持有的。
Looper.java
private static void prepare(boolean quitAllowed) {
if (sThreadLocal.get() != null) {
...
分类:
其他好文 时间:
2015-04-05 09:10:04
阅读次数:
127
通过 ThreadLocal 能数据保存在一个线程中,而且不需要 lock 同步。理论上 ThreadLocal 可 以让一个变量在每个线程都有一个副本。 ThreadLocal 常用来屏蔽线程的私有变量,例如“并 发事务”或者其他的资源。而且,...
分类:
编程语言 时间:
2015-04-04 23:52:57
阅读次数:
416
ThreadLocal
ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
从线程的角度看,目标变量就象是线程的本地变量,这也...
分类:
其他好文 时间:
2015-04-04 23:50:54
阅读次数:
579
对于ThreadLocal的理解,这篇帖子写的非常到位:http://www.iteye.com/topic/103804
个人总结:
存在意义:ThreadLocal是用来解决多个线程之间数据隔离的。
重点理解:
1)首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的...
分类:
其他好文 时间:
2015-04-04 09:24:59
阅读次数:
129
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不...
分类:
编程语言 时间:
2015-04-02 18:15:03
阅读次数:
160
在tomcat7下停止应用时报错: created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10]
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server ins...
分类:
其他好文 时间:
2015-04-02 11:42:13
阅读次数:
216
死锁/*
* 死锁:多个线程使用不同的锁,每个线程都需要另一个线程持有的锁
* 出现:同步的嵌套
*
*/
public class Test01 {
public static void main(String[] args) {
Tom tom = new Tom();
Alice alice = new Alice();
MyT...
分类:
编程语言 时间:
2015-03-30 09:22:27
阅读次数:
212
ThreadLocal只包含一个属性threadLocalHashCode。
public class ThreadLocal {
/**
* ThreadLocals rely on per-thread linear-probe hash maps attached
* to each thread (Thread.threadLocals and...
分类:
其他好文 时间:
2015-03-28 20:27:40
阅读次数:
131
ThreadLocal 不是用来解决共享对象的多线程访问问题的。ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal....
分类:
其他好文 时间:
2015-03-28 20:21:24
阅读次数:
184