科技界 新科技新应用
首页 /  科普知识 /  内容

线程间如何传递数据

科普知识 2024-06-04 04:01:44 叶应是叶

如何线程传递参数

1.业务系统参数传递。假如你有一个web系统,每次访问客户端会有一些公共参数传递进来,然后你的不同的业务方法,都想使用,这个时候要么你做一层防腐层,将所有有用的参数封装一下接连往下传,这样每个用到的地方都要传递,另一种方式,就是我们要介绍的ThreadLocal的方式,你可以通过spring的拦截器,将所有的参数拦截下来,存在threadLocal里,后续用到的地方直接获取,但是你的各个模块儿,需要异步处理比如用到线程池,这个时候就需要跨线程间的传递。

2. 分布式跟踪系统。这里比如阿里的鹰眼、美团的cat、mtrace等等监控系统中,要打通各个系统之间的调用链路,他们就需要在每一次系统全链路调用中进行染色,将每一次全链路调用的数据关联在展示平台展示,便于业务工程师后续分析系统调用,链路调用之间的染色、标识都离不开线程间数据传递。

3.日志收集记录系统。同样无论异步打印,多线程内打印,均需要记录上文信息,此时也离不开线程间的数据传递。1.业务系统参数传递

假如你有一个web系统,每次访问客户端会有一些公共参数传递进来,然后你的不同的业务方法,都想使用,这个时候要么你做一层防腐层,将所有有用的参数封装一下接连往下传,这样每个用到的地方都要传递,另一种方式,就是我们要介绍的ThreadLocal的方式,你可以通过spring的拦截器,将所有的参数拦截下来,存在threadLocal里,后续用到的地方直接获取,但是你的各个模块儿,需要异步处理比如用到线程池,这个时候就需要跨线程间的传递。

版权申明:文章由用户发布,不代表本网站立场,如果侵权请联系我们删除。