Clean Code that Works.

이 일은 해두어야 해요

문맥 : 쓰레드(Client)가 인스턴스(Host)의 메소드를 호출하고 있다고 합시다.

문제 : 메소드의 처리가 끝나기까지 Host에서 제어가 되돌아오지 않습니다. 메소드의 처리에 시간이 걸리면 응답성이 저하됩니다.

해결법
  Host 중에 새로운 쓰레드를 기동합시다. 그리고 메소드가 해야 할 실제의 처리는 이 새로운 쓰레드에 맡기는 것입니다. 이것으로 Clinet 쓰레드는 곧장 다음의 처리로 넘어 갈 수 있습니다. 이렇게 되면 Client 코드는 그대로 있고 응답성을 높일 수 있습니다.

구현
  자바에서는 손쉽게 쓰레드를 기동하기 위해서 익명 내부 클래스를 이용할 수 있습니다.
  new Thread() {
     public void run() {
       helper.handle(count, c);
     }
  }.start();

관련
  쓰레드의 기동에 걸리는 시간을 줄이고 싶을 때에는 Work Thread 패턴을 사용합니다.
  처리의 결과를 Client에 되돌리고 싶을 때에는 Future 패턴을 사용합니다.

- Java언어로 배우는 디자인 패턴 입문 -