Backend/Kotlin

[Kotlin] thread-safe Collection

findmypiece 2022. 4. 14. 09:39
728x90

Coroutine를 병렬로 활용하다보면 thread-safe 한 Collection 이 필요해진다. 그런데 Kotlin 자체에서는 thread-safe 한 Collection 을 제공하지 않는다.

 

아래 함수는 모두 thread-safe 하지 않다.

mutableMapOf<String, String>()
mutableListOf<String>()
mutableSetOf<String>()

 

만약 thread-safe 한 Collection 을 사용하고 싶다면 Java의 Collections 에서 제공하는 wrapper 메소드를 활용하면 된다.

Collections.synchronizedMap(mutableMapOf<String, String>())
Collections.synchronizedList(mutableListOf<String>())
Collections.synchronizedSet(mutableSetOf<String>())

 

https://stackoverflow.com/questions/66169482/are-kotlin-mutable-collections-thread-safe
728x90