线程封闭 - threadLocal简单用法

线程封闭

把对象封装到一个线程里,只有这一个线程能看到这个对象。所以即使这个对象不是线程安全的,也不会出现线程安全的问题了。
线程封闭 - threadLocal简单用法

创建类RequestHolder,

定义一个静态成员变量
ThreadLocal requestHolder = new ThreadLocal<>();
并定义三个方法,add(),getId(),remove(),分别表示想requestHolder 中添加对象,获取对象,移除对象

线程封闭 - threadLocal简单用法

定义Filter

线程封闭 - threadLocal简单用法

定义Interceptor

线程封闭 - threadLocal简单用法

将Filter和Interceptor 注入

线程封闭 - threadLocal简单用法

测试代码:

线程封闭 - threadLocal简单用法

执行结果:
线程封闭 - threadLocal简单用法

日志:
线程封闭 - threadLocal简单用法

代码git地址:
https://gitee.com/nannirongrong/concurrency.git