ThreadLocal用法详解

阅读更多
ThreadLocal用法详解


1.ThreadLocal的作用      (备注:由于语言能力比较差,以下两段解释来源博友)

1.1、ThreadLocal的目的就是为每一个使用ThreadLocal的线程都提供一个值,让该值和使用它的线绑定,当然每一个线程都可以独立地改变它绑定的值。如果需要隔离多个线程之间的共享冲突,可以使用ThreadLocal,这将极大地简化你的程序.

1.2、每一个线程都提供了一份变量,因此可以同时访问而互不影响

2.用例(比如为每一个登录的用户创建一个ThreadLocal)
package com.xxxx.web.manage;
import com.xxxx.model.UserInf;

/**
 * 建议将ThreadLocal设置为公共类
 * 
 */
public class LoginThread{
	
	private static ThreadLocal user=new ThreadLocal();//定义UserInf对象,并封装
  
	public static ThreadLocal getUser() {
		return user;
	}

	public static void setUser(ThreadLocal user) {
		LoginThread.user = user;
	}	
}

3、ThreadLocal数据源的存储
场景:当用户登录验证成功后,便将该user 对象放入ThreadLocal

LoginThread.set(UserInf);

4、ThreadLocal数据源的取值
场景:直接使用封装的get方法,用对象来接收

UserInf user=LoginThread.get();

你可能感兴趣的:(thread,java)