线程封闭 - threadLocal简单用法

线程封闭

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

创建类RequestHolder,

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

线程封闭 - threadLocal简单用法_第2张图片

定义Filter

线程封闭 - threadLocal简单用法_第3张图片

定义Interceptor

线程封闭 - threadLocal简单用法_第4张图片

将Filter和Interceptor 注入

线程封闭 - threadLocal简单用法_第5张图片

测试代码:

线程封闭 - threadLocal简单用法_第6张图片

执行结果:
线程封闭 - threadLocal简单用法_第7张图片

日志:
在这里插入图片描述

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

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