ThreadLocal中有map会存储每个线程的信息,这样,每个线程相当于拥有了局部变量。
package com.baobaotao;
class Ticket{
public int count = 0;
public static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>(){
protected Integer initialValue(){
return 0;
};
};
public String getTicNum(){
count = threadLocal.get()+1;
threadLocal.set(count);
return count+"";
}
}
class ThreadLocalNew extends Thread{
private Ticket tkt;
public ThreadLocalNew(Ticket tkt){
this.tkt = tkt;
}
@Override
public void run() {
for(int i=0; i<5; i++){
System.out.println(getName()+" ticketNum:"+tkt.getTicNum());
}
}
}
public class MyThreadLocal {
public static void main(String[] args){
Ticket tkt = new Ticket();
ThreadLocalNew t1 = new ThreadLocalNew(tkt);
ThreadLocalNew t2 = new ThreadLocalNew(tkt);
ThreadLocalNew t3 = new ThreadLocalNew(tkt);
t1.start();
t2.start();
t3.start();
}
}