posts - 11,  comments - 0,  trackbacks - 0

该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。

这个是什么,就是解决一个线程内共享一个变量,这个变量只在这个线程内部有效,在一个线程内访问的都一个同一个对象,而多个线程之间的这个对象却是相互独立的。说来就是每一个线程都有一个独立的此线程副本。
使用ThreadLocal一般都声明为静态的变量
在我们的线程中有一个threadLocals的Hash表来存放这个对象,我们用ThreadLocal对象作为主键,因此我们的ThreadLocal对象声明为静态的

我们可以使用多个TheadLocal,来使一个线程里有多个共享的变量
这个就是要实现一个线程里面共享一个变量

public void set(Object value) {        
	  Thread t = Thread.currentThread();
        ThreadLocalMap map = getMap(t);
        if (map != null) 
            map.set(this, value);
        else
            createMap(t, value);
    }

 

    ThreadLocalMap getMap(Thread t) {
        return t.threadLocals;
    }
posted on 2009-05-14 21:03 小晖 阅读(194) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(2)

随笔档案

文章分类

相册

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜