线程间如何传递数据
如何在线程间传递参数
1.业务系统参数传递。假如你有一个web系统,每次访问客户端会有一些公共参数传递进来,然后你的不同的业务方法,都想使用,这个时候要么你做一层防腐层,将所有有用的参数封装一下接连往下传,这样每个用到的地方都要传递,另一种方式,就是我们要介绍的ThreadLocal的方式,你可以通过spring的拦截器,将所有的参数拦截下来,存在threadLocal里,后续用到的地方直接获取,但是你的各个模块儿,需要异步处理比如用到线程池,这个时候就需要跨线程间的传递。
2. 分布式跟踪系统。这里比如阿里的鹰眼、美团的cat、mtrace等等监控系统中,要打通各个系统之间的调用链路,他们就需要在每一次系统全链路调用中进行染色,将每一次全链路调用的数据关联在展示平台展示,便于业务工程师后续分析系统调用,链路调用之间的染色、标识都离不开线程间数据传递。
3.日志收集记录系统。同样无论异步打印,多线程内打印,均需要记录上文信息,此时也离不开线程间的数据传递。1.业务系统参数传递
假如你有一个web系统,每次访问客户端会有一些公共参数传递进来,然后你的不同的业务方法,都想使用,这个时候要么你做一层防腐层,将所有有用的参数封装一下接连往下传,这样每个用到的地方都要传递,另一种方式,就是我们要介绍的ThreadLocal的方式,你可以通过spring的拦截器,将所有的参数拦截下来,存在threadLocal里,后续用到的地方直接获取,但是你的各个模块儿,需要异步处理比如用到线程池,这个时候就需要跨线程间的传递。
版权申明:文章由用户发布,不代表本网站立场,如果侵权请联系我们删除。