| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- distributed-systems
- java
- PAPER
- eventual-consistency
- ReentrantLock
- synchronized
- condition
- dynamo
- k8s
- key-value
- bloomfilter
- LOCK
- CS
- concurrency
Archives
- Today
- Total
목록CS (1)
dev log
[CS] synchronized의 한계와 Lock/ReentrantLock로 해결하는 방법 (정리)
상황: synchronized만으로는 부족해지는 순간자바에서 가장 먼저 배우는 동기화 도구는 synchronized다. 문법이 간단하고, 임계 구역(critical section)을 안전하게 보호해준다. 실제로는 “그냥 안전하기만 하면 되는 게 아니라, 기다림을 어떻게 다룰지”가 더 큰 문제가 된다.락이 오래 잡혀 있으면 다른 스레드들이 끝없이 기다려도 될까?요청 처리 스레드가 대기 중일 때, 타임아웃이나 취소(인터럽트)에 반응해야 하지 않을까?대기자들이 많을 때 ‘먼저 기다린 스레드’에게 우선권을 주는 공정성이 필요할까?synchronized는 “모니터 락 + 암묵적 획득/해제”라는 단순한 모델을 제공하는 대신, 이런 정책을 세밀하게 선택하기는 어렵다.그래서 자바 1.5부터 java.util.concu..
Tech
2026. 1. 28. 19:54