Simple&Natural
multithreaded 환경에서 singleton 사용시 발생할 수 있는 문제에 대한 이슈 및 개선 방법 본문
안드로이드(Android)/기타
multithreaded 환경에서 singleton 사용시 발생할 수 있는 문제에 대한 이슈 및 개선 방법
Essense 2020. 4. 11. 05:21728x90
멀티스레드 환경에서 싱글톤 객체를 초기화할 때 발생할 수 있는 문제는 서로 다른 객체들이 동시에 생성될 수 있다는 것이다.
이는 가뜩이나 취약한 모바일 기기의 하드웨어(특히 메모리)의 낭비를 일으킬 수 있다.
이 문제에 대해 간단하게는 synchronyzed를 이용한 동기화 방법이 있다.
그러나 이는 클래스에 대한 스레드의 block을 유발하므로 성능이슈가 발생하게 된다.
따라서 volatile을 이용하여 메인메모리에 초기화 시켜두고 getInstance를 이용하여 호출하는 방법을 권장하고 있다.
728x90
'안드로이드(Android) > 기타' 카테고리의 다른 글
안드로이드에서 Coroutine과 Retrofit 및 Room을 함께 사용 시 주의사항 (1) | 2020.08.25 |
---|---|
안드로이드 스튜디오 기본 파일 입출력 경로 (0) | 2020.08.21 |
JsonObject의 getString()과 optString()의 차이 (0) | 2020.08.12 |
안드로이드에서 RGB와 HEX 색상 표기 이해하기 (0) | 2020.08.09 |
구글 인앱결제 구현 (0) | 2019.12.13 |