ThreadLocal
该类提供了线程局部变量。这些变量不同于它们的普通对应物,访问某个变量(通过get和set方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。即每个线程访问的是该变量的一个副本。在这个副本中,线程可以更改该变量的值,变量的初始化值不会改变,其他的副本亦不会改变。所以说,ThreadLocal存放的值是线程内共享的,线程间互斥的。类的其他方法请参考API。下面是一个实例:
import java.util.Random;
public class ThreadLocalTest {
/**创建一个线程本地变量*/
private static final ThreadLocal<Integer> tl = new ThreadLocal<Integer>(){
@Override
protected Integer initialValue() {
return 100;//设置其初始化值为100,否则会返回null
}
};
public static void main(String[] args){
/**创建线程*/
for(int i=0; i<10; i++){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("线程:"+Thread.currentThread().getName()&