- 浏览: 54329 次
- 性别:
- 来自: 洛阳
文章分类
最新评论
ThreadLocal用法详解
1.ThreadLocal的作用 (备注:由于语言能力比较差,以下两段解释来源博友)
1.1、ThreadLocal的目的就是为每一个使用ThreadLocal的线程都提供一个值,让该值和使用它的线绑定,当然每一个线程都可以独立地改变它绑定的值。如果需要隔离多个线程之间的共享冲突,可以使用ThreadLocal,这将极大地简化你的程序.
1.2、每一个线程都提供了一份变量,因此可以同时访问而互不影响。
2.用例(比如为每一个登录的用户创建一个ThreadLocal)
package com.xxxx.web.manage; import com.xxxx.model.UserInf; /** * 建议将ThreadLocal设置为公共类 * */ public class LoginThread{ private static ThreadLocal<UserInf> user=new ThreadLocal<UserInf>();//定义UserInf对象,并封装 public static ThreadLocal<UserInf> getUser() { return user; } public static void setUser(ThreadLocal<UserInf> user) { LoginThread.user = user; } }
3、ThreadLocal数据源的存储
场景:当用户登录验证成功后,便将该user 对象放入ThreadLocal
LoginThread.set(UserInf);
4、ThreadLocal数据源的取值
场景:直接使用封装的get方法,用对象来接收
UserInf user=LoginThread.get();
发表评论
-
Condition
2017-01-03 16:58 0condition的应用 -
java对sftp文件进行上传、下载、删除等操作,附详细demo
2016-12-22 18:01 2087这是自己总结的一个类,包含连接sftp,上传,下载等操作,附件 ... -
servlet监听器功能讲解及代码案例
2017-07-08 16:54 620servlet监听器功能讲解及代码案例 监听器的功能很强大, ... -
web.xml之session超时设置 以及设置session超时的几种方法
2016-10-20 16:39 1189web.xml之session超时设置 先说正题,web. ... -
web.xml之过滤器详解 以及常用过滤器demo
2016-10-20 14:15 2716web.xml之过滤器详解 一 ... -
poi导出excel清晰 步骤详解
2016-10-14 14:08 843poi导出excel清晰 步骤详解 一、本次生成excel ... -
struts2下载文件最简化版清晰详解
2016-10-14 11:20 614struts2下载文件最简化版清晰详解 一、应用场景如下: ... -
poi解析excel步骤详解
2016-10-14 10:42 2115poi解析excel步骤详解 一、本次解析excel应用场景 ... -
struts2文件上传详解
2016-10-13 11:26 807struts2文件上传详解 一、jsp代码 <fo ... -
JSONObject、JSONArray、xml的常用操作
2016-09-28 16:33 1365JSONObject、JSONArray、xml的常用操作 ... -
Rsa签名算法详解
2016-09-22 09:48 4628Rsa签名算法详解 签名生成规则与验证签名规则如下: ... -
Quartz定时任务的实现及详解
2016-09-21 18:03 2161Quartz定时任务的实现及详解 平常工作中经常遇到写定时任 ... -
四种线程池的特性以及测试代码
2016-09-21 09:20 905四种线程池的特点如下 ... -
操作json
2016-09-18 13:01 642总是记不住一些零碎的知识点,这次开个专栏来记录,不定期更新: ... -
日期类型转换
2016-09-18 12:50 531总是记不住一些零碎的知识点,这次开个专栏来记录,不定期更新: ... -
配置文件的读取与写入
2016-09-14 17:00 650读取配置文件: public static void m ... -
HttpPoster接口调用
2016-09-13 13:47 1624工作中经常用到的东西,这也是自己在公司的基础上改造的,感觉挺好 ... -
md5加密
2016-09-13 13:39 594md5工具类如下所示,可以直接拿走用,分享记录一下 pack ... -
AES加密与解密
2016-09-13 13:37 477这个其实是我们项目里面的一个工具类,给大家做一下分享 aes ... -
循环map取值的方法
2016-09-08 13:00 1543循环map取值的方法,如下所示: 方法一: Map< ...
相关推荐
ThreadLocal 用法详解.md
### Java中ThreadLocal详解 #### 一、ThreadLocal概述 在Java多线程编程中,`ThreadLocal`是一个非常重要的工具类,它提供了一种在每个线程内部存储线程私有实例的方法。通常情况下,当多个线程共享某个变量时,...
Java ThreadLocal用法实例详解 Java ThreadLocal是Java中的一种线程局部变量机制,用于保存每个线程独有的数据,以避免线程之间的数据共享问题。ThreadLocal的基本使用非常简单,只需要定义一个ThreadLocal变量,...
`initialValue`方法是ThreadLocal的一个重要方法,它是一个保护方法,在每个线程第一次访问该变量时调用,返回该线程的初始值。在这个例子中,随机生成一个0到10000之间的整数作为初始值。 `Accessor`类实现了...
Java ThreadLocal使用案例详解 Java ThreadLocal是Java语言中的一种机制,用于为每个线程提供一个独立的变量副本,以解决多线程环境下共享变量的线程安全问题。在本文中,我们将详细介绍Java ThreadLocal的使用案例...
#### ThreadLocal的接口方法详解 ThreadLocal类提供了以下四个主要的接口方法: 1. `void set(Object value)`:用于设置当前线程的线程局部变量的值。这意味着每个线程可以独立地设置和修改自己的变量副本,而不...
### 导致JVM内存泄露的ThreadLocal详解 #### 一、为什么要有ThreadLocal 在多线程编程中,为了避免线程间的数据竞争和保证线程安全性,常常需要使用同步机制如`synchronized`来控制线程对共享资源的访问。然而,...
### ThreadLocal核心概念详解 #### 一、ThreadLocal简介与重要性 ThreadLocal是一个非常重要的Java并发工具类,它的核心概念在于为每一个线程提供了一个独立的变量副本,从而避免了线程之间的数据竞争问题。这使得...
为了避免这种情况,建议在不再需要使用`ThreadLocal`时,使用`remove()`方法清理。 总之,`ThreadLocal`是Java中用于创建线程局部变量的一个工具,它使得我们可以在线程之间隔离变量,避免并发问题,提高程序的...
* 在使用 ThreadLocal 时,需要确保 initialValue() 方法的正确实现,以避免线程之间的数据共享。 * 在使用 ThreadLocal 时,需要注意避免内存泄漏的问题,例如,在使用完毕后,需要将 ThreadLocal 变量设置为 null...
在上述代码中,创建了一个ThreadLocal实例,然后在线程的run()方法中设置值,每个线程设置的数据只对自己可见,不会影响其他线程。这样既实现了数据共享(所有线程可以访问到ThreadLocal),又确保了对象独立(每个...
下面将详细探讨 ThreadLocal 的工作原理、使用方法以及适用场景。 1. **ThreadLocal 工作原理** - 每个 `ThreadLocal` 实例在每个线程中都有一个对应的存储槽,这个存储槽存储的是变量的副本。当创建一个新的 `...
当使用ThreadLocal的set()方法设置值时,实际上是将值放入当前线程的ThreadLocalMap中,而get()方法则从该线程的ThreadLocalMap中获取值。因此,不同线程访问同一个ThreadLocal实例时,它们看到的是各自的副本,互不...
#### 二、ThreadLocal机制详解 **ThreadLocal** 提供了一种线程本地存储的解决方案,为每个线程创建独立的副本,避免了线程间的共享和争用问题。 - **作用原理:** - ThreadLocal 维护了一个 Map 结构,其中 Key ...
### 二、ThreadLocal API详解 1. `ThreadLocal()`:创建一个新的线程局部变量。 2. `T get()`:返回当前线程的ThreadLocal变量副本中的值,如果这是线程第一次调用get(),则初始化副本。 3. `protected T initial...
- 多个开源框架如 Spring、Hibernate 都使用了 `ThreadLocal`。例如,Spring 中的 TransactionTemplate 和 AOP 模块利用 `ThreadLocal` 存储当前事务信息,Hibernate 中的 Session 管理也依赖于 `ThreadLocal` 来...
Java 线程本地变量 ThreadLocal 详解 ThreadLocal 是 Java 中的一个类,提供了线程安全的对象封装,用于解决多线程访问数据的冲突问题。ThreadLocal 的主要目的是为每个线程提供一个变量副本,从而隔离了多个线程...
下面将详细介绍ThreadLocal的工作原理、使用方法以及在Android中的实际应用。 ### 1. ThreadLocal工作原理 ThreadLocal内部实现了一个HashMap,用于存储每个线程与对应的变量副本之间的映射关系。当我们创建一个新...
ThreadLocal 详解 ThreadLocal 是 Java 中一个非常重要的类,它为解决多线程程序的并发问题提供了一种新的思路。ThreadLocal 并不是一个 Thread,而是 Thread 的局部变量,它为每个使用该变量的线程提供独立的变量...