Spring 引导应用程序的线程安全

Thread safety with Spring boot application

您好,我想知道 spring 引导应用程序中的线程安全性。

我配置了 JMS 侦听器并发读取消息,然后调用映射器将请求转换为所需格式,然后发送消息。

所以,既然我正在同时监听消息,那么现在要使用 mapper,我需要确保我的代码中的线程安全吗?

应用程序服务器使用多种概念使普通程序员可以轻松使用多线程。

最重要的概念是广告限制。要理解这个概念,请阅读 this question.

的答案

在您的情况下,涉及多个线程,但也有一些 API 使您能够以安全的方式处理从一个线程到另一个线程的数据。大多数时候都涉及线程池,请参阅 Introduction to Thread Pools in Java

在JMS中有些对象是不允许在不同线程中使用的(例如Session对象),有些是(例如Connection、JmsTemplate)。阅读 "Why JMS Session Object is not thread safe?". The consequences are listed here.

的答案

我建议阅读 Spring documentation on this topic