JMS 2.0规范2.14节:
JMS可能要求其所有对象都支持并发使用。 由于对并发访问的支持通常会增加一些开销 复杂性,JMS设计限制了它对并发的要求 访问那些自然会被a共享的对象 多线程客户端。其余的对象设计为 一次由一个逻辑控制线程访问。
支持并发使用: 目的地,ConnectionFactory,连接
不支持并发使用: JMSContext,Session,Producer,consumer
不确定为什么在规范中没有讨论Message的线程安全性?
修改
消息线程安全吗?两个线程可以在没有竞争的情况下共享吗?
没有。消息不是线程安全的。它不应该在线程之间共享。
答案 0 :(得分:1)
消息不是线程安全的。消息是可变的,它有setter,所以当一个线程使用Message时,另一个线程可以干扰并改变它。