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

尼罗发表小说做的的网站是哪个抖音小店代运营

尼罗发表小说做的的网站是哪个,抖音小店代运营,淄博网站优化首选公司,网站的色彩搭配背景 在我们实际业务开发过程中,会遇到这样的场景,需要在单个线程整个生命周期内部保存全局的数据信息,比如说:单个线程内部全局唯一数据库连接、唯一的日志记录id,线程用户信息等。 那么为什么不直接在线程内部采用局部变量呢&am…

背景

在我们实际业务开发过程中,会遇到这样的场景,需要在单个线程整个生命周期内部保存全局的数据信息,比如说:单个线程内部全局唯一数据库连接、唯一的日志记录id,线程用户信息等。
那么为什么不直接在线程内部采用局部变量呢?
这个涉及到线程内部方法调用传递参数比较麻烦,如果直接用Thread对象获取更加方便。

Thread线程对象

每个线程有自己独立的Thread对象

组成部分说明
虚拟机栈方法调用栈、局部变量表(线程私有)
本地方法栈执行 native 方法使用的栈(线程私有)
线程对象 Thread 本身每个线程创建时对应一个 Thread 实例
ThreadLocalMapThreadLocal 变量专属的存储空间(线程私有)
程序计数器(PC)当前执行的指令地址(线程私有)

ThreadLocalMap 的存储

Thread对象包含了一个私有变量
ThreadLocal.ThreadLocalMap threadLocals = null;
线程内部可以通过这个threadLocals成员属性拿到ThreadLocalMap,

ThreadLocalMap存储了什么呢?

他的每一个节点是一个Entry结构

static class Entry extends WeakReference<ThreadLocal<?>> {/** The value associated with this ThreadLocal. */Object value;Entry(ThreadLocal<?> k, Object v) {super(k);value = v;}}

这是什么意思呢?
就是相当于是一个键值对,他的key就是ThreadLocal对象,并且是弱引用,强引用就是我们在实际的方法栈中引用堆上的实例数据,弱引用是当JVM进行GC会回收掉他,前提是没有其他强引用。这样做是防止当前线程结束,线程回到了线程池,导致线程对象仍然间接引用着key,没有被垃圾回收,导致内存泄漏。
value值就是我们存储的数据值。

重要

key是弱引用,但是value是强引用,如果使用线程池,不释放,就会出现value内存泄漏,所以在线程结束时需要调用threadlocal的remove方法清楚数据。

threadLocalMap是一个Entry数组结构

  private Entry[] table;

每一个节点是一个ThreadLocal对象key,和一个值。

ThreadLocal对象

ThreadLocal对象是我们在代码中创建的存储数据的结构
例如:

	ThreadLocal local = new ThreadLocal();local.set(5);local.set(6);
ThreadLocal的set方法执行过程:
  1. 获取当前线程Thread对象的ThreadLocalMap实例对象
  2. 如果没有,null,那么就创建一个ThreadLocalMap,并且赋值给Thread对象的threadLocals
  3. 如果存在,就从ThreadLocalMap中获取到当前ThreadLocal对象为key的值,因为ThreadLocalMap是数组,就通过对ThreadLocal对象进行hash求知取到他的数组下标,如果这个下标不等于这个ThreadLocal对象,说明存在hash冲突,就通过开放寻址法,继续遍历下一个数组下标的元素,直到末尾。
  4. 找到之后,就可以设置value
  5. get方法也是一个逻辑

这样就达到了在多个线程中共享同一个ThreadLocal对象,互相操作对象内部的元素,但是又能实现资源的隔离

最后 吐槽一下

说实话,这种垃圾设计真的烧脑,引用链路复杂,晦涩难懂是正常人脑子能想出来的吗?简直是逆天
http://www.dtcms.com/a/424740.html

相关文章:

  • 手机网站用什么语言开发小影wordpress
  • 天津项目网站建设京东网站建设有哪些优点
  • 韩国在中国做美食的视频网站有哪些cvm可以做网站服务器吗
  • 做糕点的网站WordPress 主页分页
  • 做男装去哪个网站好网页设计包含的内容
  • 重庆免费网站建设自己做的网站可以百度推广吗
  • Java:代码块
  • 五维论推普朗克公式和质能方程和多普勒效应
  • 动画网站模板诸暨 外贸网站建设
  • 可视化信息 网站室内设计方案
  • 建设企业网站收费网站权重划分
  • 鸿蒙:PersistenceV2页面间持久化存储数据
  • wordpress手机版如何在电脑seo广告优化
  • FreeRTOS下STM32双缓冲ADC数据采集与处理
  • 主页导航网站建设定制网站首页菜单栏
  • 校园二手用品网站建设的项目章程南宁网站建设推广优化
  • Docker 容器与镜像
  • 网站ico如何修改有什么做任务得佣金的网站
  • 网站建设背景公司营销策划方案案例
  • 住房和城乡建设部网站主页公司网站建设一条龙
  • 5. 软件工程基础知识
  • C++进阶(2)——多态
  • 营销网站建站开发什么是交换链接
  • 校园风险管理网站建设方案wordpress使用php版本号
  • html头部
  • 韩国网站域名分类常州seo第一人
  • 建设部网站官网办事厅音乐网站素材
  • 人工智能-机器学习day4
  • 网站建设和维护要点重庆cms建站模板
  • 做外汇需要了解的网站网页制作有什么软件