src/main/java/com/zx/maintain/util/ThreadLocalUtil.java

(完整代码) 1KB

package com.zx.maintain.util;

import java.util.HashMap;
import java.util.Map;

/**
 * ThreadLocal工具类,可以动态创建ThreadLocal对象
 * 
 * @author wangxj
 */
public class ThreadLocalUtil {

	@SuppressWarnings("unchecked")
	private static Map<String, ThreadLocal> tlMap = new HashMap<String, ThreadLocal>();

	/**
	 * 获取key为region的ThreadLocal对象,如果不存在,会新创建一个;valueType为ThreadLocal的值类型
	 * 
	 * @param region
	 * @param valueType
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T> ThreadLocal<T> getRegion(String region, Class<T> valueType) {
		ThreadLocal<T> tl = tlMap.get(region);
		if (tl == null) {
			tl = addRegion(region, valueType);
		}
		return tl;
	}

	/**
	 * 创建key为region的ThreadLocal对象,valueType为ThreadLocal的值类型
	 * 
	 * @param region
	 * @param valueType
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private static synchronized <T> ThreadLocal<T> addRegion(String region, Class<T> valueType) {
		ThreadLocal<T> tl = tlMap.get(region);
		if (tl == null) {
			tl = new ThreadLocal();
			tlMap.put(region, tl);
		}
		return tl;
	}


}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。