唯's Blog

笔者是一个热爱编程的 Java 程序员。

0%

ThreadLocal

  • 在多线程访问同一份数据量时,会产生线程安全问题,ThreadLocal 以创建副本的方式来避免线程冲突。空间换时间的思想

Spring 中的应用

  • Spring 中事务功能便用到了 ThreadLocal,缓存事务数据库连接(ConnectionHodler)、事务信息(隔离级别、事务名、是否只读、事务激活状态)。用与实现事务传播行为。TransactionSynchronizationManager

  • Spring-Security 中的登录会话信息也是以 ThreadLocal 保存,在执行业务逻辑,使用异步线程处理IO逻辑时 会在异步线程找不到 会话信息