资讯专栏INFORMATION COLUMN

真实项目中 ThreadLocal 的妙用

WalkerXu / 1986人阅读

摘要:一什么是提供了线程的局部变量,每个线程都可以通过和来对这个局部变量进行操作,但不会和其他线程的局部变量冲突,实现了线程间的据隔离。上面存储格式是,实际场景存储的是具体的对象。在这次请求过程中,任何时候都可以获取。

一、什么是 ThreadLocal

ThreadLocal 提供了线程的局部变量,每个线程都可以通过 set() 和 get() 来对这个局部变量进行操作,但不会和其他线程的局部变量冲突,实现了线程间的据隔离。

简单讲:一个获取用户的请求线程 A,如果向 ThreadLocal 填充变量 AValue(只能被线程 A 操作),该变量对其他获取用户的请求线程 B、C...是隔离的.

最简单的使用方式:

类似一次 HTTP 请求线程中,利用 ThreadLocal 存储 Cookie 对象,进行状态管理。set Cookie:

private ThreadLocal httpThreadLocal = new ThreadLocal();

httpThreadLocal.set(“Cookie: sid=13420771402233”)

上面存储格式是 String ,实际场景存储的是具体的对象。在这次 HTTP 请求过程中,任何时候都可以获取 Cookie 。获取方式很简单 get Cookie:

String cookieValue = (String) httpThreadLocal.get();

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75764.html

相关文章

  • 慎用ThreadLocal

    摘要:另载于是个很爽的东西,线程安全,能当全局变量来用别。第一家公司,使用框架老技术,现代人可以理解为类似,对每个请求都套上,进入时把写入,返回或抛注意时清理。第二家公司,某次引入一个设计,也用了来传递上下文信息,有的地方没能清掉。 另载于 http://www.qingjingjie.com/blogs/12 ThreadLocal是个很爽的东西,线程安全,能当全局变量来用(别!)。 上一...

    harriszh 评论0 收藏0
  • WMS项目使用到切面

    摘要:前言目前系统刚启动,骨架刚刚搭建完成,在项目中,使用了一些切面,做一些业务无关的处理。在现在的项目里面,分别在,调用,分页,处理,均使用到了切面。希望本文的阅读者也不吝将项目中使用的切面分享出来。 前言 目前系统刚启动,骨架刚刚搭建完成,在项目中,使用了一些切面,做一些业务无关的处理。在本文中,将各个切面例举出来,用以加深自己对切面的理解。记得在初学切面的时候,一般文章介绍切面的时候,...

    Tikitoo 评论0 收藏0
  • Android 进阶

    摘要:理解内存模型对多线程编程无疑是有好处的。干货高级动画高级动画进阶,矢量动画。 这是最好的Android相关原创知识体系(100+篇) 知识体系从2016年开始构建,所有的文章都是围绕着这个知识体系来写,目前共收入了100多篇原创文章,其中有一部分未收入的文章在我的新书《Android进阶之光》中。最重要的是,这个知识体系仍旧在成长中。 Android 下拉刷新库,这一个就够了! 新鲜出...

    DoINsiSt 评论0 收藏0
  • React 应用设计之道 - curry 化妙用

    摘要:右侧展现对应产品。我们使用命名为的对象表示过滤条件信息,如下此数据需要在组件中进行维护。因为组件的子组件和都将依赖这项数据状态。化应用再回到之前的场景,我们设计化函数,进一步可以简化为对于的偏应用即上面提到的相信大家已经理解了这么做的好处。 showImg(https://segmentfault.com/img/remote/1460000014458612?w=1240&h=663...

    sewerganger 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<