Lang/Java

Java ArrayList, Map multiThread

hamaganatanadda 2023. 2. 12. 18:17

읽기만 하면 Thread safe하나 수정하면 문제 발생

그래도 multi thread환경에서는 안 쓰는 편이 낫다고 한다.

ArrayList, HashMap

 

Thread safe 읽기, 쓰기 가능
CopyOnWriteArrayList, SynchronizedList
ConcurrentHashMap, SynchronizedMap

Thread safe 읽기만 가능
대신 원본에 접근가능하면 원본은 수정할 수 있음
unmodifiableMap
unmodifiableList

Google Guava 불변
immutablemap
immutablelist

JAVA 9 불변
list.of()

unmodifiablemap vs immutablemap
https://stackoverflow.com/questions/22636575/unmodifiablemap-java-collections-vs-immutablemap-google

ArrayList Thread 관한 글
https://202psj.tistory.com/1614

CopyOnWriteArrayList vs SynchronizedList
read 작업량 < write 작업량 : SynchronizedList
read 작업량 > write 작업량 : CopyOnWriteList
CopyOnWriteList 임시배열에 복사해서 쓰기 후 원본배열을 갱신하기 때문에 읽기가 나음
SynchronizedList 전체 락
https://taes-k.github.io/2021/12/26/synchronizedlist-copyonwritelist/
http://asuraiv.blogspot.com/2020/02/java-synchronizedlist-vs.html

ConcurrentHashMap vs SynchronizedMap
https://ooz.co.kr/71
ConcurrentHashMap(쪼개서 락)
SynchronizedMap 전체 락

'Lang > Java' 카테고리의 다른 글

LocalDateTime millisecond 계산  (0) 2023.04.01
Quartz 간단하게 사용법  (0) 2023.02.18
Thread Runnable 사용 시 setName  (0) 2023.02.11
sts thymeleaf ',' expected Language Servers  (0) 2022.11.20
STS thymeleaf 자동 완성 안 될 때  (0) 2022.11.20