ThreadLocal种的使用

ThreadLocal类的使用

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());
 }
}