重型后端中端服务器应用程序中的线程本地建议

Adi*_*tya 7 java oop multithreading design-patterns java-ee

是否建议使用ThreadLocal存储线程上下文?

我正在构建一个后端服务器应用程序,其中有我需要运行的典型服务.

注意:我们不是在SOA架构上构建它.

在每个服务开始之前,我需要给它一个具有一些服务上下文的状态,这是一个可变的映射来处理.当服务并行运行时,将共享此变量映射.

现在,例如,服务需要根据一些与线程相关的参数来检查天气,它必须暂停或超时.

问题:将线程上下文保留在本地线程中然后构建api的服务上下文以访问这些变量的参数是一种好方法.

这将有助于我隐藏复杂的行为,它不会打开我的内部事物.

谢谢,Aditya

ric*_*chj 1

看起来您的服务器应用程序框架应该为您提供以更简单的方式实现此功能的方法 - 除非您正在实现自己的框架。

例如,现在服务需要根据一些与线程相关的参数来检查是否必须停止或超时。

EJB 容器提供了这种功能。EJB 还提供会话上下文以及确保在线程之间转移执行时可以恢复上下文的方法(通过钝化 + 激活)。