2013-08-06 3 views
26

Documentation for jersey 2.0 says :Java Jersey 2.1 클라이언트 스레드는 안전합니까?

클라이언트 인스턴스는 비싼 자원입니다. 구성된 인스턴스가 웹 자원 생성에 다시 사용되는 것이 좋습니다. 웹 리소스 생성, 요청 작성 및 응답 수신은 스레드로부터 안전합니다. 따라서 클라이언트 인스턴스와 WebResource 인스턴스가 여러 스레드

공유 할 수

가 클라이언트 여전히 스레드 안전 버전 2.1? docs for 2.1.

+1

티켓을 개설했습니다. (lol) : https://java.net/jira/browse/JERSEY-3094 –

답변

1

나는 2.1 release notes을 기반으로 생각하겠습니다. 그런 점에서 변경된 사항은 없지만이 변경 사항에 대한 설명서는 찾을 수 없습니다.

16

예, Jersey 2.1 클라이언트는 스레드로부터 안전하며 향후 Jersey 버전에서도 스레드로부터 안전해야합니다. 하나의 Client 인스턴스에서 많은 WebTarget을 생성하고 이러한 WebTargets에 대한 많은 요청과 동시에 하나의 WebTarget 인스턴스에 대한 더 많은 요청을 호출 할 수 있습니다.

사용자 지정 스레드가 아닌 보안 공급자를 클라이언트 또는 WebTaget에 등록하면 스레드 안전이 손상 될 수 있습니다. 예를 들어, 스레드 안전하지 않고 더 많은 요청을 동시에 처리 할 수없는 ClientRequestFilter. 저지 내장 공급자는 스레드로부터 안전합니다. 일부 Jersey 확장 공급자는 스레드로부터 안전하지 않아야하며이 경우 공급자의 javadoc에 지정됩니다.

+1

유용한 답변입니다. 이것에 대한 출처도 있습니까? –

+3

이 제한 사항은 JAX-RS 또는 Jersey에서만 제공됩니까? ['javax.ws.rs.client.Client'] (https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/Client.html)는 다음과 같이 설명합니다 : _Clients는 중량 개체입니다. Client 인스턴스 초기화 및 폐기는 다소 비싼 작업 일 수 있습니다. 따라서 적은 수의 Client 인스턴스 만 생성하는 것이 좋습니다. 클라이언트 인스턴스는 리소스 유출을 방지하기 위해 적절히 닫아야합니다. _ ** thread-safety **에 대해서는 아무 것도 없습니다. 재사용 **하지만 같은 시간 _에 대해서는 아무것도 없습니다. – lucasvc

+1

@datakey 정확히 누가 대답을 확인할 수 있습니까? 나는 '클라이언트'와 '웹 타겟'에 대해 어떻게 생각해야할지 모르겠다. ..! – Yanko

관련 문제