java如何使用ThreadLocal存储线程专有对象


小编给大家分享一下java如何使用ThreadLocal存储线程专有对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去免费云主机域名了解一下吧!ThreadLocal提供了线程专有对象,可以在整个线程生命周期中随时取用,极大地方便了一些逻辑的实现。常见的ThreadLocal用法主要有两种:保存线程上下文对象,避免多层级参数传递;保存非线程安全对象,避免多线程并发调用。这里,以PageHelper插件的源代码中的分页参数设置与使用为例说明。设置分页参数代码:使用分页参数代码:使用分页插件代码:如果要把分页参数通过函数参数逐级传给查询语句,除非修改MyBatis相关接口函数,否则是不可能实现的。在写日期格式化工具函数时,首先想到的写法如下:其中,每次调用都要初始化DateFormat导致性能较低,把DateFormat定义成常量后的写法如下:由于SimpleDateFormat是非线程安全的,当多线程同时调用formatDate函数时,会导致返回结果与预期不一致。如果采用ThreadLocal定义线程专有对象,优化后的代码如下:这是在没有线程安全的日期格式化工具类之前的实现方法。在JDK8以后,建议使用DateTimeFormatter代替SimpleDateFormat,因为SimpleDateFormat是线程不安全的,而DateTimeFormatter是线程安全的。当然,也可以采用第三方提供的线程安全日期格式化函数,比如apache的DateFormatUtils工具类。注意:ThreadLocal有一定的内存泄露的风险,尽量在业务代码结束前调用remove函数进行数据清除。以上是“java如何使用ThreadLocal存储线程专有对象”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!

相关推荐: 摩拜单车微信小程序开发技术有哪些

本篇内容主要讲解“摩拜单车微信小程序开发技术有哪些 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“摩拜单车微信小程序开发技术有哪些 ”吧! 微信小程序没有HTML的常用标签,而是类似React的微信自定义组件,比如…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/18 15:38
下一篇 01/18 15:39

相关推荐