ThreadLocal的其他应用

简介: request对象跟PageHelper

spring框架使用ThreadLocal存储每个线程的request对象

不同请求会封装不同的request对象。

例如:查询的请求来到后端spring框架,spring会将当前线程请求放到ThreadLocal存储,

那么使用request对象就从ThreadLocal获取使用;如果是删除请求,请求来到后端spring框架就会将删除请求request对象存储到当前线程的ThreadLocal中。

PageHelper
pageHelper分页组件底层使用ThrealLocal存储当前页码和每页大小, 同一个线程内mapper执行分页的sql时执行limit关键字需要当前页码和每页小,就是从ThreadLocal里面获取的

PageHepler 其实limit的时候也是通过threadlocal去传递page跟pageSize的

我们用分页插件的时候 我们自己只写了一个sql语句就是根据条件查询所有的语句

但是实际上执行的是select count(0) limit ,?

为什么 就是因为pageHelper底层是通过threadLocal临时变量去做到的

那为什么我们要用page集合去接收数据 不用普通的list

是因为page集合的可以告诉我们每一页有多少数据 但是list不能

相关文章
|
3月前
|
Java 测试技术 索引
ThreadLocal详解
文章详细讨论了Java中的`ThreadLocal`,包括它的基本使用、定义、内部数据结构`ThreadLocalMap`、主要方法(set、get、remove)的源码解析,以及内存泄漏问题和避免策略。`ThreadLocal`提供了线程局部变量,确保多线程环境下各线程变量的独立性,但不当使用可能导致内存泄漏,因此建议在不再需要`ThreadLocal`变量时调用其`remove`方法。
103 2
ThreadLocal详解
|
5月前
|
Java
ThreadLocal 场景题
ThreadLocal 场景题
35 1
|
6月前
|
存储 Java
ThreadLocal 有什么用
ThreadLocal 有什么用
52 0
|
存储 算法 安全
深入详解ThreadLocal
在我们日常的并发编程中,有一种神奇的机制在静悄悄地为我们解决着各种看似棘手的问题,它就是 ThreadLocal 。
21513 9
深入详解ThreadLocal
|
存储 Java
ThreadLocal
ThreadLocal字面意思本地线程,ThreadLocal使每个线程之间是隔离的,数据是独立的,我们使用过session都知道 session是一个会话,我们可以用它来存储一些用户的基本信息,这样每个用户在服务端都能取到,ThreadLocal也可以做到, ThreadLocal将相应的信息存储在当前的线程中,只有当前线程能够访问,其他线程不能访问,其实ThreadLocal 可以说是一个定制化的Map。
59 0
|
存储 Java
|
存储 Java 数据库连接
对ThreadLocal的一点了解
ThreadLocal是线程变量,它为每个线程提供单独的存储空间。其主要作用是做线程间的数据隔离,也可以用于在同一个线程间方便地进行数据共享。(对于多线程资源共享,加锁机制采用“时间换空间”,ThreadLocal采用“空间换时间”)
126 0
|
存储 分布式计算 安全
什么是ThreadLocal?
这篇文章是慕课网上一门免费课程《ThreadLocal》的观后总结。这门课将ThreadLocal讲得非常清晰易懂,又深入底层原理和设计思想,是我看过的最好的ThreadLocal的资料,现在把用自己的话,把它整理成文字版本。 总共预计产出四篇文章,这是第一篇。
266 3
|
存储 Java
ThreadLocal相关使用
ThreadLocal相关使用
192 0
ThreadLocal相关使用