36

球衣 2.0 的文档说

客户端实例是昂贵的资源。建议重用已配置的实例来创建 Web 资源。Web 资源的创建、请求的构建和响应的接收都保证是线程安全的。因此,可以在多个线程之间共享 Client 实例和 WebResource 实例

客户端在 2.1 版中仍然是线程安全的吗?我在2.1 的文档中找不到有关线程安全的信息。

4

2 回答 2

26

是的,Jersey 2.1 客户端是线程安全的,即使在未来的 Jersey 版本中也应该是线程安全的。您可以从一个 Client 实例创建多个 WebTarget,并在这些 WebTarget 上调用多个请求,甚至在一个 WebTarget 实例上同时调用更多请求。

如果您将自定义的非线程安全提供程序注册到客户端或 WebTget 中,则线程安全可能会被破坏。例如,非线程安全且无法同时处理更多请求的 ClientRequestFilter。Jersey 内置提供程序是线程安全的。一些 Jersey 扩展提供程序必须不是线程安全的,在这种情况下,这是在提供程序的 javadoc 中指定的。

于 2013-09-06T08:09:23.100 回答
1

我认为,基于2.1 发行说明,在这方面没有任何改变,但我在文档中找不到这种改变的动机。

于 2013-08-06T11:19:41.817 回答