안녕하세요.

 

현재 네트워크 어플을 하나 만들고 있는데요.

 

보통 UI Thread와 분리하기 위해서 UI에서 요청하면 Thread 만들어서 거기서 처리하고 UI에서는 응답만 받는 식인데요.

보통 안드로이드 네트워크가 이런 구조인 걸로 아는데요.

 

단점이라면 UI 스레드에서 여러개의 Request를 보내면 Thread가 계속 생성된다는 것이구요.

Thread를 제한둬서 관리한다면(예로 맥시멈 3개) 3개 이상의 Request는 동시에 보낼 수 없다는게 되구요.

 

그래서, 제 질문의 요점은 아래와 같습니다.

 

HttpClient execute 메소드가 Blocking으로 알고 있습니다.

즉, 응답이 올때까지 대기하는 것으로 아는데요.

Non-blocking 형식으로 사용할 수 없는지 궁금합니다.

 

그러면, 네트워크 스레드는 1개만 만들어서 자원은 최소화 할 수 있으며,

해당 스레드는 요청만 하게 되고, 응답은 다른 스레드에서 작동하게 되는거죠.

 

Native C/C++ 에서는 쉽게 non-blokcing 사용방법을 알겠는데, 자바(안드로이드)에서는 어떻게 쓰는지 궁금합니다.

 

미리 감사드립니다.