在哪些场景下会使用到 ThreadLocal?

在调用 API 接口的时候传递了一些公共参数,这些公共参数携带了一些设备信息(是安卓还是 ios),服务端接口根据不同的信息组装不同的格式数据返回给客户端。假定服务器端需要通过设备类型(device)来下发下载地址,当然接口也有同样的其他逻辑,我们只要在返回数据的时候判断好是什么类型的客户端就好了。上面这种场景就可以将传进来的参数 device 设置到 ThreadLocal 中。用的时候取出来就行。避免了参数的层层传递。

发表评论

后才能评论

评论(1)

  • 一蓑烟雨 游客 2022-09-29 9:52 上午

    1、数据库连接、处理数据库事务
    每个线程都有一个连接对象副本,不用担心造成线程安全问题,进行回滚或者其他操作,都不会受到干扰。
    2、数据跨层传递
    通过静态方法传递参数,避免参数传递的麻烦。
    3、spring中使用ThreadLocal解决线程安全问题
    equestContextHolder、TransactionSynchronizationManager、LocaleContextHolde等可以直接获取ThreadLocal对象。