当前位置: 首页JavaSEJava并发面试题正文 在哪些场景下会使用到 ThreadLocal? Java并发面试题 4 6.3K 在调用 API 接口的时候传递了一些公共参数,这些公共参数携带了一些设备信息(是安卓还是 ios),服务端接口根据不同的信息组装不同的格式数据返回给客户端。假定服务器端需要通过设备类型(device)来下发下载地址,当然接口也有同样的其他逻辑,我们只要在返回数据的时候判断好是什么类型的客户端就好了。上面这种场景就可以将传进来的参数 device 设置到 ThreadLocal 中。用的时候取出来就行。避免了参数的层层传递。 Java锁 帅地永久会员 打赏 收藏 海报挣佣金 推广链接
评论(1)
1、数据库连接、处理数据库事务
每个线程都有一个连接对象副本,不用担心造成线程安全问题,进行回滚或者其他操作,都不会受到干扰。
2、数据跨层传递
通过静态方法传递参数,避免参数传递的麻烦。
3、spring中使用ThreadLocal解决线程安全问题
equestContextHolder、TransactionSynchronizationManager、LocaleContextHolde等可以直接获取ThreadLocal对象。