1、定义

ThreadLocal是线程的本地变量, 是一个存储变量的容器, 存入到这个容器中的变量的变量可以在线程的任何位置取出.

ThreadLocal中的变量是使用线程分离的, 别的线程无法使用,保证了变量的安全性

2、示例

public class TestDemo {
	//用一个静态的变量来记录ThreadLocal对象,方法在任何地方法直接调用
	static ThreadLocal<String> local = new ThreadLocal<>();
	public static void main(String[] args) {
		new Thread(){
			public void run(){
				//在线程的任意地方设置变量
				local.set("你");
				method();
			}
		}.start();
		new Thread(){
			public void run(){
				local.set("好");
				method();
			}
		}.start();
	}
	
	public static void method(){
		//可以在当前线程的任意地方获取变量
		System.out.println(local.get());
	}
}

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐