Java에서 Thread-safe 한 Map 자료구조를 생각하면 떠오르는 3가지에 대해서 알아보겠습니다. HashTable HashTable은 HashMap 이전에 사용하던 자료구조입니다. HashTable은 Thread-safe하게 동작하기 위해 내부가 다음과 같이 구현되어있습니다. put 메서드 구현부입니다. 메소드에 synchronized가 붙어있어 스레드가 HashTable에 put을 할 때에는 다른 스레드가 접근하지 못해 Thread-safe하게 동작합니다. 또한 다른 메서드들도 synchronized가 붙어 Thread-safe합니다. 하지만 이러한 구조는 문제점을 안고 있습니다. 메서드에 synchronized가 걸려있으면 class 전체에 Lock이 걸리기 때문에 HashTable의 기능 ..
HashTable은 컬렉션 프레임워크가 만들어지기 전에 존재하던 것이다. 하지만 호환을 위해 설계를 변경해서 남겨 두었다. 사용한다면 말리진 않겠지만 추천하진 않는다.(HashMap or ConcurrentHashMap) 사용 권장 HashTable은 이름 그대로 해시 테이블을 구현한 클래스로 거의 HashMap과 사용법이 동일하다. public class HashTableEx { public static void main(String[] args) { Hashtable hashtable = new Hashtable(); hashtable.put("1", "kim1"); hashtable.put("2", "kim2"); hashtable.put("2", "kim3"); hashtable.put("3", ..
- Total
- Today
- Yesterday
- Redis
- Kotlin
- thread
- docker
- 취업
- 자바
- MySQL
- 프로젝트
- IT
- 면접
- java
- DB
- 인터뷰
- CS
- swarm
- 코딩
- DevOps
- 면접준비
- 취준
- 동시성
- 코드
- JPA
- 면접 준비
- 취업준비
- 개발자
- 개발
- 게시판
- 백엔드
- Spring
- 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |