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

做外贸网站哪家的好开发公司对联

做外贸网站哪家的好,开发公司对联,网站注册域名免费,127.0.0. wordpress关键注意事项1.必须调用 remove () 方法 线程池中的线程是复用的,如果不清除,下次复用线程时会读到旧数据,导致逻辑错误或内存泄漏。2.避免使用 static 滥用 虽然 ThreadLocal 常声明为 static,但需明确其作用域,避免存…

关键注意事项

1.必须调用 remove () 方法
线程池中的线程是复用的,如果不清除,下次复用线程时会读到旧数据,导致逻辑错误或内存泄漏。

2.避免使用 static 滥用
虽然 ThreadLocal 常声明为 static,但需明确其作用域,避免存储过大对象。

3.为什么要使用 static 修饰

如果 ThreadLocal 是非静态的(实例变量),那么每个类实例都会创建一个独立的ThreadLocal 对象。这会导致:

同一个线程中,通过不同的类实例访问 ThreadLocal 时,拿到的是不同容器中的数据(不符合 "线程内全局共享" 的预期)。

例如:UserContext 类的两个实例 ctx1ctx2,它们的非静态 ThreadLocal 会让线程 A 在 ctx1 存的数据,在 ctx2 中读不到。

4.父子线程数据不共享
子线程无法读取父线程的 ThreadLocal 数据,如需共享可使用 InheritableThreadLocal

注意:可以创建多份 ThreadLocal

一个线程中可能同时需要存储:

  • 用户登录信息(User 类型)
  • 数据库事务 ID(String 类型)
  • 本次请求的日志追踪 ID(Long 类型)

此时需要定义多个 ThreadLocal

public class ThreadContext {// 存储用户信息private static ThreadLocal<User> userLocal = new ThreadLocal<>();// 存储事务IDprivate static ThreadLocal<String> transactionIdLocal = new ThreadLocal<>();// 存储日志追踪IDprivate static ThreadLocal<Long> traceIdLocal = new ThreadLocal<>();// 用户信息的get/set/removepublic static void setUser(User user) {userLocal.set(user);}public static User getUser() {return userLocal.get();}public static void removeUser() {userLocal.remove();}// 事务ID的get/set/removepublic static void setTransactionId(String id) {transactionIdLocal.set(id);}public static String getTransactionId() {return transactionIdLocal.get();}public static void removeTransactionId() {transactionIdLocal.remove();}// 日志追踪ID的get/set/removepublic static Long getTraceId() {return traceIdLocal.get();}public static void setTraceId(Long id) {traceIdLocal.set(id);}public static void removeTraceId() {traceIdLocal.remove();}
}

使用上:

// 存储数据
ThreadContext.setUser(new User("张三"));
ThreadContext.setTransactionId("tx-123456");
ThreadContext.setTraceId(10086L);// 读取数据(同一线程内)
User user = ThreadContext.getUser(); // 张三
String txId = ThreadContext.getTransactionId(); // tx-123456

总结

  1. 静态声明 ThreadLocal:是为了保证容器实例唯一,避免资源浪费,确保线程内变量的全局一致性(最常见的使用方式)。
  2. 多个 ThreadLocal 实例:完全合理且必要,用于隔离同一线程中的不同类型变量(如用户信息、事务 ID 等)。

核心原则:一个 ThreadLocal 实例对应一种类型的线程变量,静态声明是为了让这种对应关系全局唯一。

 

 

http://www.dtcms.com/a/436543.html

相关文章:

  • 腾讯云手动搭建wordpress个人站点百度广告联盟一个月能赚多少
  • 做家乡网站的素材内蒙古建设厅设计处网站
  • 网站建设公司益阳建设局网站
  • 网站建设基本流程教学视频iis6.0建立网站
  • 可以用什么网站做mc官方画册设计网站欣赏
  • dw可以做视频网站么上海将打造五大未来产业集群
  • 网站做tipswordpress数据文件
  • 深圳网站制作必选祥奔科技免费发布网站
  • 做图素材的网站有哪些wordpress摄影模板
  • 查询建设资质的网站开发一个app有哪些好处
  • 商丘做网站公司新站seo快速收录网站内容页的方法润州网站建设
  • 厦门建设银行网站怎么进入网站开发模式
  • 网站建设与规划的书做pc端网站价位
  • 网站底部悬浮代码dedecms制作的网站
  • 怎么做网站的seo排名知乎android官网
  • 做查询网站费用石家庄邮电职业技术学院
  • 专门做机器人的网站建设英文网站赚钱的36个方法
  • 怎么推广自己的网站贵州百度推广优化报告
  • 左、右伪逆
  • 东莞网站建设哪里好高端品牌护肤品有哪些
  • 衡水网站建设选哪家流量对于网站盈利
  • 深圳网博网站建设制作网页填数据
  • 后台管理系统网站模板凡科网站怎么做外链
  • 用c语言做网站网站的模块
  • 济宁北湖建设局网站域名购买查询
  • 做网站的基本流程wordpress怎样加入代码
  • 阿里域名价格wordpress和seo权重
  • 从“黑暗森林法则”到“灰色丛林法则”
  • 我想在购物网站做代理app开发平台软件
  • 实用网站模板wordpress dux qq登录