[TIL] 20201220

todo

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

Tags:

Categories:

Updated:

Leave a comment