synchronized 클래스 사용을 지양한다.

2015-04-09 13:09

JDK 초기 버전에서는 thread-safe를 위해 synchronzied를 기반으로 하고 있는 API를 제공했다. 하지만 synchronized를 사용하는 경우 성능에 부정적인 영향을 준다.

JDK 초기 버전에서 주로 사용한 API class와 이를 대체하는 class는 다음과 같다.

  • Vector 대신에 ArrayList 또는 LinkedList
  • Stack 대신에 Deque
  • Hashtable 대신에 HashMap
  • StringBuffer 대신에 StringBuilder

물론 thread-safe하지 않은 경우에는 synchronized 기반으로 구현한 class를 해야겠지만 우리가 구현하는 대부분의 경우 메서드 내에서 생성되고 사용되는 경우가 많기 때문에 multi thread 상황에서 문제가 없는 것이 일반적이다.

0개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로