티스토리 뷰
Java
멀티스레드 환경에서의 안전한 작업을 도와주는 CopyOnWriteArrayList랑 AtomicLong 에 대해.
Kodong's blog 2025. 7. 31. 11:08백엔드 프로젝트를 설계할때, 멀티스레드 환경을 잘 관리하는 것은 중요하다.
그래서 이번 포스팅은 CopyOnWriteArrayList, AtomicLong를 정리해보려고 한다.
■ CopyOnWriteArrayList 란?
→ 스레드-안전한 List 구현체
- 읽기(Read)는 빠르게, 쓰기(Write)는 느리게 동작해!
- 쓰기 작업이 일어날 때마다 전체 배열을 복사해서 새로운 배열을 만든 다음 변경
읽는 작업이 많고, 쓰는 작업이 드문 경우(ex. 캐시 데이터, 설정 값 목록 등등 )에 사용하면 좋음.
■ AtomicLong 란?
→ long 값을 스레드-안전하게 원자적(Atomic)으로 조작할 수 있게 해줌.
락(lock) 없이도 동시에 여러 스레드가 안전하게 접근 가능함!!
동시성 카운팅 작업 (ex. 사용자 수, 요청 수, 고유 ID 생성 등), 락(lock)을 쓰지 않고 빠르게 처리하고 싶을 때 쓰면 좋음.
뭐, 각각 클래스의 매서드는 검색해서 찾는데 더 효율적일 것같다. 여기까지.,....
'Java' 카테고리의 다른 글
| 자바 - 참조변수, 인스턴스, 객체 ( 메모리 저장 방식 부터 확실히 알고가자!! ) (8) | 2025.07.31 |
|---|---|
| 자바 - 자바의 다형성 → 인터페이스 (interface) (3) | 2025.07.31 |
| 자바 - final 키워드 의미 (2) | 2025.07.30 |
| 자바 - 싱글톤 패턴(Singleton Pattern) → 하나의 객체를 전역에서 사용하기. (4) | 2025.07.28 |
| 자바 - 언박싱, 오토박싱 (4) | 2025.07.27 |