티스토리 뷰
동시성 유틸리티
- 실행자 프레임워크
- 동시성 컬렉션(concurrent collection)
- 동기화 장치(synchroonizer)
동시성 컬렉션
- 표준 컬렉션 인터페이스에 동시성을 가미해 구현한 고성능 컬렉션
- 동기화한 컬렉션보다 동시성 컬렉션을 사용하는게 더 좋다. Collections.synchronizedMap보다는 ConcurrentHashMap을 사용하는게 훨씬 좋다
- BlockingQueue 의 take 메소드는 큐의 첫 원소를 꺼내는데 큐가 비어있으면 새로운 원소가 추가 될때까지 기다린다(producer, consumer 큐로 쓰기 적합)
핵심 정리
wait와 notify를 직접 사용하는 것을 동시성 ‘어셈블리 언어’로 프로그래밍하는 것에 비유할 수 있다.반면 java.util.concurrent는 고수준 언어에 비유할 수 있다.코드를 새로 작성한다면 wait와 notify를 쓸 이유가 거의(어쩌면 전혀) 없다. 이들을 사용하는 레거시 코드를 유지보수해야 한다면 wait는 항상 표준 관용구에 따라 while문 안에 서 호출하도록 하자. 일반적으로 notify보다는 notifyAll을 사용해야 한다. 혹시라도 notify를 사용한다면 응답 불가 상태에 빠지지 않도록 각별히 주의하자.
'Java' 카테고리의 다른 글
[Effective Java] 지연 초기화는 신중히 사용하라 (0) | 2021.07.31 |
---|---|
[Effective Java] 스레드 안전성 수준을 문서화하라 (0) | 2021.07.30 |
[Effective Java] 스레드보다는 실행자, 테스크, 스트림을 애용하라 (0) | 2021.07.26 |
[Effective Java] 과도한 동기화는 피하라 (0) | 2021.07.25 |
[Effective Java] 공유 중인 가변 데이터는 동기화해 사용하라 (0) | 2021.07.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Today
- Yesterday
링크
TAG
- Java
- iterable
- exception
- Concurrecy
- jvm
- Spring
- reactive stream
- template
- Observer Pattern
- observable
- object
- in-memory
- Design Pattern
- Effective JAVA
- 메인보드#asrock b650m #조립pc #후기이벤트
- 영속성
- reactive
- nosql
- jdk11
- template method
- Redis
- concurrency
- LAMBDA
- Serialize
- strategy
- 디자인패턴
- 부하테스트
- JMeter
- Serializable
- gslb
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함