是否建议使用 ThreadLocal 来存储线程上下文?
我正在构建一个后端服务器应用程序,其中有我需要运行的典型服务。
注意:我们不是在 SOA 架构上构建它。
在每个服务开始之前,我需要给它一个状态,它有一些服务上下文,它是要处理的变量映射。当服务并行运行时,这个变量映射是共享的。
例如,现在服务需要根据一些线程相关参数检查天气情况,它必须停止或超时。
问题:将线程上下文保留在线程本地,然后构建 api 的服务上下文以访问这些变量的参数是否是一种好方法。
这将帮助我隐藏复杂的行为,并且不会打开我的内部事物。
谢谢, 阿迪亚
最佳答案
看起来您的服务器应用程序框架应该为您提供以更简单的方式实现此功能的方法 - 除非您正在实现自己的框架。
Now for example a service needs to check weather it has to be halted or timed-out based on some thread related parameters.
EJB 容器提供了这种功能。 EJB 还提供 session 上下文和确保在线程之间转移执行时可以恢复上下文的方法(通过钝化 + 激活)。
关于java - 重型后端中间层服务器应用程序中的 Thread Local 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4711572/