java 保证线程池中传递值

和自甴很熟 提交于 2020-08-05 17:02:49

1.阿里框架

https://github.com/alibaba/transmittable-thread-local#2-%E4%BF%9D%E8%AF%81%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%B8%AD%E4%BC%A0%E9%80%92%E5%80%BC

注意:是get的時候才會去copy父线程的值(此时有个弊端,比如链路追踪: 父方法已经执行完了。子线程才get就拿不到父方法的spanID,这样就串不起来了)

 

2.自定义java agent 创建线程时( java.util.concurrent.Callable , java.lang.Runnable ),将当前父线程变量传递到子线程种。而不是get的时候才去拿.

(如果做链路框架推荐用此方法)

https://github.com/naver/pinpoint/blob/master/plugins/thread/src/main/java/com/navercorp/pinpoint/plugin/thread/ThreadPlugin.java

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!