본문 바로가기

Runnable2

Future를 이용한 Thread Pool 작업 완료 통보 2021.12.13 - [Android : Kotlin/Deep-Dive] - 안드로이드 Thread Pool (위 글에서 이어집니다.) 1. 블로킹 식 작업 완료 통보 생성한 Thread Pool에서 작업 처리를 요청할 때 submit( ) Method는 작업 처리 결과를 Future 타입의 객체로 반환한다. submit( ) Method에 사용되는 파라미터는 아래와 같다. 반환되는 Future 객체는 submit( )을 통해 완료된 단일 작업 결과가 아니라 모든 작업이 완료될 때까지 기다렸다가 최종 결과를 얻는 데 사용한다. 그렇기 때문에 Future 객체를 지연 완료 객체 (Pending Completion Object)라고도 한다. Future의 get( ) Method를 호출하면 Thread가 .. 2021. 12. 13.
Thread Pool 1. Thread Pool Thread를 생성하면 OS가 메모리 공간을 확보하고 그 메모리를 Thread에 할당한다. 하지만, 수행해야 할 작업의 개수에 따라 병렬 작업 처리가 많아지면 그에 필요한 Thread의 개수가 증가하게 된다. 이 경우, Thread의 생성과 스케줄링으로 인해 OS가 바빠지게 되고 작업을 마치고 수거하는 일은 비용이 크기 때문에 어플리케이션 성능에 큰 영향을 줄 수 있다. 이를 방지하기 위해 Thread Pool을 사용할 수 있다. 위에서 설명한 것 처럼 Thread의 생성과 수거는 비용 소모가 많은 작업이다. 미리 Thread를 여러 개 만들어 두고 작업이 들어오는 대로 할당해서 사용하게 하고 작업이 끝나고 난 뒤에도 그대로 뒀다가 나중에 필요할 때 재사용하기 위한 장치가 Th.. 2021. 12. 13.