package thread;
import sun.nio.cs.ThreadLocalCoders;
/**
* 对该类提供了线程局部 (thread-local) 变量 助理并发对数据的的共享
*
* @author admin
*
*/
public class ThreadLocalTest {
private static int attribute = 0;
//使用ThreadLocal处理数据并发性。
private static ThreadLocal<Integer> serialNum = new ThreadLocal<Integer>() {
@Override
protected Integer initialValue() {
// TODO Auto-generated method stub
return attribute++;
}
};
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//不同线程之间数据是一个不一样的副本
for(int i = 0 ; i < 2; i++){
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(serialNum.get());
}
}.start();
}
//同一个线程访问的数据是相同的。
System.out.println("f" + serialNum.get());
System.out.println("f" + serialNum.get());
}
}