java - 重型后端中间层服务器应用程序中的 Thread Local 建议

标签 java multithreading design-patterns jakarta-ee oop

是否建议使用 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/

相关文章:

java - 我需要与许多其他对象共享一个对象——我读过关于单例的投诉,那么我应该使用什么来代替?

java - 替换 util 类的最佳模式

java - Tomcat启动后的Ant脚本

java - 更好地理解 J2EE 环境中的异常和日志记录

java - 如何解决IllegalArgumentException : Property is not indexed

multithreading - 测量多线程应用程序的带宽

laravel - Laravel 中的 Facade 是否实现了 Facade 或 Proxy 模式?

java - WEKA:如何禁用标记数据的过滤器?

multithreading - Spring AOP 方面未在线程中触发

c - e 在这里取什么值?