共享类:
package cn.framework.t1;
public class T1 {
private static ThreadLocal<Integer> tl=new ThreadLocal<Integer>(){
public Integer initialValue(){
return 0;
}
};
public int getNum(){
tl.set(tl.get()+1);
return tl.get();
}
}
线程类:
package cn.framework.t1;
public class RI implements Runnable {
private T1 t1;
public RI(T1 t1){
this.t1=t1;
}
@Override
public void run() {
for(int i=0;i<2;i++){
System.out.println(Thread.currentThread().getName()+"-->:"+t1.getNum());
}
}
}
测试类:
package cn.framework.t1;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main1 {
public static void main(String[] args) {
ExecutorService exe = Executors.newCachedThreadPool();
T1 t1 = new T1();
for (int i=0;i<10;i++){
exe.execute(new RI(t1));
}
exe.shutdown();
}
}