实例
package zf.threadlocal;
import java.util.Random;
public class ThreadLocalTest02 implements Runnable{
ThreadLocal<Student> stu = new ThreadLocal<Student>(){
protected Student initialValue() {
return new Student();
};
} ;
Random r = new Random() ;
@Override
public void run() {
int i = r.nextInt(100);
String threadName = Thread.currentThread().getName() ;
System.out.println(threadName + " set i " + i);
stu.get().setId(i);
System.out.println(threadName + "fist read i " + stu.get().getId());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(threadName + " second read i " + stu.get().getId());
}
public static void main(String[] args) {
ThreadLocalTest02 tlt = new ThreadLocalTest02();
new Thread(tlt).start() ;
new Thread(tlt).start() ;
}
}
class Student{
private int id ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}