java: ThreadLocal简介

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

猜你喜欢

转载自blog.csdn.net/m0_37564426/article/details/86530248