【01-14】java ThreadLocal工具类
自定义ThreadLocal
package concurrent;
import java.util.HashMap;
import java.util.Map;
/**
* @author aloha_world_
* @date 2016年9月13日 下午11:40:52
* @version v1.00
* @description 继承自ThreadLocal类并实现其init方法
*/
public class MyThreadLocal extends ThreadLocal<Map<String, Object>> {
private Map<String, Object> innerMap;
@Override
protected Map<String, Object> initialValue() {
innerMap = new HashMap<String, Object>();
return innerMap;
}
public Object get(String key) {
return innerMap.get(key);
}
public void reset() {
innerMap.clear();
}
public void set(String key, Object value) {
innerMap.put(key, value);
}
@Override
public void remove() {
super.remove();
}
}
操作ThreadLocal的工具类
package concurrent;
/**
* @author aloha_world_
* @date 2016年10月17日 下午10:30:23
* @version v1.00
* @description 操作ThreadLocal的工具类
*/
public class ThreadContextHolder {
public static MyThreadLocal threadLocal = new MyThreadLocal();
public static void reset() {
threadLocal.reset();
}
public static void put(String key, Object value) {
threadLocal.get().put(key, value);
}
public static void remove(String key) {
threadLocal.get().remove(key);
}
}
更一般的工具类
package org.alohaworld.util;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @author aloha_world_
* @date 2016年11月7日 下午11:37:05
* @version v1.00
* @description
*/
public class ThreadContextHolder {
private static final Log logger = LogFactory.getLog(ThreadContextHolder.class);
public static final ThreadLocal<Map<String, Object>> context = new MyThreadLocal();
private static class MyThreadLocal extends ThreadLocal<Map<String, Object>> {
@Override
protected Map<String, Object> initialValue() {
return new HashMap<String, Object>();
}
}
public static Object get(String key) {
return getMap().get(key);
}
private static Map<String, Object> getMap() {
return context.get();
}
public static void put(String k, Object v) {
logger.info("key:" + k + " value:" + Thread.currentThread().getName() + " added to threadlocal");
getMap().put(k, v);
}
public static void reset() {
getMap().clear();
}
}
【01-14】java ThreadLocal工具类的更多相关文章
- MinerDB.java 数据库工具类
MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...
- 小记Java时间工具类
小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...
- java日期工具类DateUtil-续一
上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...
- 基于AQS实现的Java并发工具类
本文主要介绍一下基于AQS实现的Java并发工具类的作用,然后简单谈一下该工具类的实现原理.其实都是AQS的相关知识,只不过在AQS上包装了一下而已.本文也是基于您在有AQS的相关知识基础上,进行讲解 ...
- Java开发工具类集合
Java开发工具类集合 01.MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- Java并发工具类 - CountDownLatch
Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...
随机推荐
- Topself 方便调试的Window服务框架
Installing Topshelf nuget Install-Package Topshelf public class TownCrier { readonly Timer _timer; p ...
- 防范CSRF(一)
CSRF是跨网站伪造请求的缩写.大致的攻击流程是,黑客获得浏览器向服务器发送的请求,然后对请求进行修改,让服务器执行指定的操作. 防范方式可以使用微软提供的解决方案. View放置Html.AntiF ...
- lucene 自定义评分
摘自:http://blog.csdn.net/seven_zhao/article/details/42708953 1.基于FunctionQuery,(1)创建类并继承ValueSource:( ...
- php常用数学函数
php常用数学函数1. bcadd 任意精度数的相加2. bcsub 任意精度数的减法3. bcmul 乘法, bcdiv除法 4. bcmod 取余数. (比%功能更强大)5. bcpow 幂函数运 ...
- 如何设置linux的文件和目录的权限
1 字符表示法 1)chmod [-R] 权限(mode)file 注:[-R]会将目录下所有权限都设置成指定的 who operator permission u(owner) +增加权限 r( ...
- angular $parse $eval parse VS eval
$parse angular中重要指令介绍($eval,$parse和$compile) Advanced Angular: $parse $parse ---------------------- ...
- 成为java高手的八大条件
1.扎实的基础 数据结构.离散数学.编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序.程序人人都会写,但当你发现写到一定程度很难再提高 的时候,就应该想想是不是要回过头来学 ...
- Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)
传送门:http://codeforces.com/contest/757 A题题意是给你一个字符串,让你在里面找到"Bulbasaur"这样的单词有多少个,字符串可以重排列.实际 ...
- java 移位运算
移位运算 :将整数转化为二进制(以补码的形式),按位平移. << 左移 >> 右移 >>> 无符号右移 << 右移: 按位做平 ...
- HDU 2212 DFS
Problem Description A DFS(digital factorial sum) number is found by summing the factorial of every d ...