java Jersey 2.1客户端线程安全吗?

时间:2013-08-06 11:13:58

标签: java thread-safety jersey jersey-client jersey-2.0

Documentation for jersey 2.0 says

  

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

客户端在2.1版中是否仍然是线程安全的?我在docs for 2.1.

中找不到有关线程安全的信息

2 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:1)

我认为,基于2.1 release notes,在这方面没有任何改变,但我无法找到文档中此更改的动机。