Agile Java Lesson 13

기본

멀티쓰레딩

Active Object 패턴을 사용해 검색 서버와 클라이언트를 구현합니다. Java 언어로 배우는 디자인 패턴 입문, 멀티 쓰레드 편에 보면 가장 마지막 챕터에 ‘앞에서 배운 모든 것을 합친’  마지막 보스입니다. 부분 부분은 이해가 가는데 큰 그림이 잘 안보입니다. 프록시 패턴도 4번째 볼 때 써먹을 만 하겠다 싶었는데 이건 어림도 없네요.

기억에 남는건 BlockingQueue는 내부적으로 엘리먼트를 가져오거나 저장할 때 대기하게끔 설계가 돼있어 굳이 mutex에 신경을 쓰지 않아도 된다는 점이네요.

저자가 요약한 동기화에 대한 기본적인 디자인 원칙

  • 사용하지 않는다. 필요한 경우에만 동기화한다.
  • 분리한다. 동기화가 필요한 부분은 SRP에 의거해 최소화 시키고, 가능한 클라이언트가 적게하고, 가능한 적은 메소드가 공유 데이터를 사용하도록 한다.
  • 공유된 클래스는 클라이언트가 아닌 스스로 동기화 기능을 제공해야 한다.
  • 동기화를 제공하지 않으면, 동기화 기능을 하는 래퍼 클래스를 만든다.
  • java.util.concurrent에 있는 동기화 라이브러리 클래스를 사용한다.
Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중