当前位置: 首页 > news >正文

四大商业网站博客网站登录入口

四大商业网站,博客网站登录入口,做网站推广被骗,武汉百度大厦ThreadLocal 什么是ThreadLocal? ThreadLocal 是线程本地变量类,在多线程并行执行过程中,将变量存储在ThreadLocal中,每个线程中都有独立的变量,因此不会出现线程安全问题。 应用举例 解决线程安全问题:例…

ThreadLocal

  1. 什么是ThreadLocal?
    ThreadLocal 是线程本地变量类,在多线程并行执行过程中,将变量存储在ThreadLocal中,每个线程中都有独立的变量,因此不会出现线程安全问题。

  2. 应用举例
    解决线程安全问题:例如每个线程都绑定一个数据库连接,避免多个线程访问同一个数据库连接:SqlSession
    跨函数参数传递:同一个线程,跨类,跨方法传递参数的时候可以使用ThreadLocal,每个线程绑定一个Token/Session

  3. 关于ThreadLocal
    1)一个线程只能有一个ThreadLocal吗?
    首先我们看到Thread里面,有一个ThreadLocalMap,可以看到再java1.8之后,每个线程都有自己的ThreadLocalMap
    在这里插入图片描述
    而这个ThreadLocalMap 里面可以明显的看到是一个数组用于存储多个Entry
    在这里插入图片描述
    我们看ThreadLocal的源码可以发现最终是调用ThreadLocalMap里面的方法:
    在这里插入图片描述
    createMap方法:
    在这里插入图片描述
    ThreadLocalMap里面的set方法:
    在这里插入图片描述
    关于ThreadLocalMap的哈希探测可以参考此文
    这篇文章写的非常的详细,更多的展示了源码的细节

  1. Entry 的 Key 为什么需要使用弱引用?如果是强引用会造成什么问题?
    因为弱引用在GC回收时会被回收,如果使用强引用,我们某个方法里面创建了一个ThreadLocal,我们肯定使用了new关键字,这个时候是强引用,如果这个方法结束,对于这个方法的引用应该解除并且回收掉,如果我们Entry里面使用强引用就会造成内存泄漏,这个已经ThreadLocal已经用不到了,但是由于key是强引用导致始终无法被回收掉。这样的话有资源一直回收不掉,堆积后最终就会OOM内存溢出。
  1. 使用案例(持续补充)
    1)传递共享参数
@Setter
public class DemoTask {private ThreadLocal threadLocal;public void execute() {// 对threadLoca的变量进行操作,只要是同一个ThreadLocal 一定是相同的值System.out.println(JSONUtil.toJsonStr(threadLocal.get()));}
}
public class ThreadLocalDemo {static ThreadLocal<Map<String, Object>> threadLocal = new ThreadLocal();public void init() {threadLocal.set(new HashMap<String,Object>(){{put(  "k1", 1);put( "k2", "v");}});}public void passParms() {DemoTask demoTask = new DemoTask();demoTask.setThreadLocal(threadLocal);demoTask.execute();System.out.println(JSONUtil.toJsonStr(threadLocal.get()));}public static void main(String[] args) {ThreadLocalDemo threadDemo = new ThreadLocalDemo();threadDemo.init();threadDemo.passParms();}
}
http://www.zhongyajixie.com/news/30425.html

相关文章:

  • 如何使用qq邮箱做网站好用的百度网盘搜索引擎
  • 现在网站如何做优化免费推广网站视频
  • 网站建设维护价格广州网站优化方式
  • 做货代用的网站在线代理浏览网站
  • 设计网站费用多少今日新闻简讯30条
  • 初中做网站软件做竞价推广大概多少钱
  • 网站有哪些区别是什么网上教育培训机构哪家好
  • 建站程序全球搜钻是什么公司
  • 学校网站模板 html做网站需要什么技术
  • 网站服务器打不开代运营电商公司
  • 门户网站想要微信登录怎么做网站推广业务
  • 网站建设分金手指专业二五贵州seo推广
  • 网站视频下载方法网络营销优化推广公司
  • web前端就是做网站么天津网站优化公司
  • 做网站时管理员权限的页面微信推广朋友圈广告
  • 内江网站怎么做seo自己怎么开电商平台
  • 家居饰品网站建设论文网站的seo方案
  • 网站和系统的区别如何推广普通话
  • 建设完网站成功后需要注意什么最有效的网络推广方式和策略
  • 自适应网站 css上海搜索引擎优化1
  • wordpress自带的简码seo网站首页推广
  • 做app和做网站哪个容易百度网站网址是多少
  • 公司建设网站申请信用卡吗游戏代理加盟
  • 泰国做企业网站小程序开发需要哪些技术
  • 网站的创新点培训seo
  • 做企业内部网站要多久什么是网络软文营销
  • 公司网站建设项目详情百度seo是啥
  • 做机械一般做那个外贸网站太原做网站哪家好
  • 国内网站建设app推广
  • 成都专门做公司网站的公司宁波 seo整体优化