栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中ThreadLocal的线程隔离

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中ThreadLocal的线程隔离

在线程中,有一个频繁使用的类引起了我们的注意,在面试题中也是会经常被问到的。本篇以线程隔离知识点为切入点,帮助大家找寻ThreadLocal类实现线程隔离的方法。内容分为线程隔离流程和使用注意点,下面我们就这两个方面带来分别的介绍,一起来学习一下具体内容吧。

1、线程隔离流程

ThreadLocal类中的静态内部类ThreadLocalMap,这个Map是ThreadLocal实现线程隔离的精髓。

Thread类中有这样子一个成员变量:

    
    ThreadLocal.ThreadLocalMap threadLocals = null;

因此,一个线程对应有自己单独的一个ThreadLocalMap。所以ThreadLocal才可以实现线程隔离。

2、使用注意

我们使用ThreadLocal为不同线程分配副本,副本并不是指同一个对象,因此倘若为不同的线程set()同一个对象的引用,还是无法避免导致不同线程都对该对象进行了操作,因此我们分配的副本就是不同的对象。ThreadLocal的最大意义就在于它实现了将副本写进了Thread对象内部的Threadlocals 这个映射对象(它是一个ThreadLocal.ThreadLocalMap类对象),我们的set、get方法都只能从当前线程中设置或者获得副本。

以上就是java中ThreadLocal线程隔离的方法,大家如果对于ThreadLocal的基础内容还不够了解,可以先自行做一些学习,然后再回过头来学习本篇的内容。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/14939.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号