乐趣区

Java调用链跟踪关键技术三线程变量

一、Java 类成员作用域

JAVA 类成员作用域参考下图:

  1. Java 虚拟机级作用域,通过在类成员变量前加 static 关键字修饰实现在整个 Java 虚拟机中共享。
  2. 类实例级作用域,成员变量前不加 static 关键字修饰则可,如图中 Class A、Class B、Class C 的成员变量,只在类实例中共享。
  3. 除了以上级别的成员变量共享,在调用链跟踪时要能识别不同分层下的多个类实例的调用是同一个请求,而这个请求的调用都在一个独立线程内完成,此时就要用到线程级变量共享。

二、实现线程变量共享

在 Java 中可以通过 ThreadLocal 实现线程变量共享,即便不需要跟踪调用链,仅仅是跟踪 SQL 调用的数据流也是非常有用。

ThreadLocal 的使用可以参考这篇文章:https://www.jianshu.com/p/4e1…
end.


加入《Java 栈实战营》知识星球,参与讨论,更多实战代码分享,不就是几斤苹果,几个荣耀道具的事吗!


https://t.zsxq.com/RNzfi2j

退出移动版