HTTPClientSession를 사용하는 일반적인 샘플 코드는 이런 식 마시고 HTTPClientSession 읽기 작업은 비 차단이므로 언제든지 취소 할 수 있습니까?비동기은
비동기은
답변
어떻게 도움이 될까요? 난 그냥이 새로운 스레드가 무한한 양의 시간 동안 차단 얻을 것이다 –
당신이 session.receiveResponse() 스레드 안에 넣으면, 당신은 분리 된 스레드에서 주 코드를 실행할 수 있기 때문에 차단 여부에 대해 걱정하지 않아야합니다 . 블로킹 섹션을 취소하려면 스레드를 죽이거나 순서대로 중지 할 수 있습니다. 스레드간에 데이터를 교환하려면 예를 들어 뮤텍스와 동기화 된 참조/포인터 또는 큐를 사용합니다. receiveResponse()를 잠시 차단하려면 Time-Alives (setKeepAliveTimeout 메서드) 및 시간 초과를 확인해야합니다. 행운을 빌어 요. –
HTTPClientSession :: setKeepAliveTimeout() 메서드를 사용하여 현재 연결에 대한 작은 TimeOut을 구성하십시오. 문서에서 "sendRequest()가 호출되거나 세션이 파괴 될 때까지 스트림이 유효합니다."따라서 rs 스트림이 일정 기간 동안 아무것도 수신하지 않으면 문제없이 계속 진행해야합니다. –
당신은이에 대한 모든 솔루션을 찾으셨습니까? – UVV