碧海潮声大学生网

标题: Java并发编程之ThreadLocal类详解 [打印本页]

作者: jiyuzi    时间: 2015-3-16 11:52
标题: Java并发编程之ThreadLocal类详解
ThreadLocal类可以理解为ThreadLocalVariable(线程局部变量),提供了get与set等访问接口或方法,这些方法为每个使用该变量的线程都存有一份独立的副本,因此get总是返回当前执行线程在调用set时设置的最新值。可以将ThreadLocal视为 包含了Map[td]对象,保存了特定于该线程的值。

概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。

模拟ThreadLocal


实用ThreadLocal

输出
Thread-0 1th 1 Thread-0 2th 2 Thread-0 3th 3 Thread-3 1th 1 Thread-1 1th 1 Thread-1 2th 2 Thread-2 1th 1 Thread-1 3th 3 Thread-3 2th 2 Thread-3 3th 3 Thread-2 2th 2 Thread-2 3th 3







欢迎光临 碧海潮声大学生网 (http://www.zjoubbs.com/) Powered by Discuz! X3.2