[TIL] 20201220
todo
불렛저널
끝.- leetcode 234
What I learned
- Room
- 기본적으로 모든 Query는 별도의 Thread에서 실행되어야 한다.
- Room 은 kotlin coroutine 지원이 된다.
- ->
suspend fun
으로 다음 코루틴 또는 다른suspend fun
에서 호출될 수 있다. - 참고: Android Room with a View - Kotlin
suspend fun
- 일시중지(paused) 했다가 나중에 다시 시작(resumed)할 수 있는 function.
- 다른
suspending function
또는coroutine
내에서만 호출할 수 있다.
@Volatile
- 해당 필드에 대한 write 가 즉시 다른 쓰레드에도 visible 함을 의미.
- 컴파일러가 해당 필드를 최적화하지 않도록 한다. 무조건 메모리에서 필드 값을 읽어오도록 한다. (다른 스레드에서 변경되었을 수 있기 때문.)
- volatile 선언이 안된 변수는 값 변경 시, cache된 상태에서 메모리에는 반영되지 않는 경우가 있다. -> 다중 스레드일 경우 문제 발생 가능.
- 참고: java-volatile, stack overflow
- 해당 필드에 대한 write 가 즉시 다른 쓰레드에도 visible 함을 의미.
Leave a comment