Ethan's Coding Letter

  • 홈
  • 태그
  • 방명록

Race condition 1

코루틴은 race condition이 발생하지 않는 것일까?

C, JAVA의 멀티 쓰레드에서 비동기 처리에서는 공유변수에 대한 접근제어를 해왔었다.(세마포어, 뮤텍스, synchronized , etc.) 동기화 제어를 제대로 하지 않으면 원자성에 위배되어, 변경된 데이터의 손실이 일어날 수 있다. 그런데 코틀린 코루틴에 대해 배우면서 아직까지 race condition에 대한 언급은 한 번도 못봤던 것 같다. 서로 다른 coroutineScope에서 공유 변수에 대한 update가 동시에 발생할 때 문제가 생길 가능성은 전혀 없는 것일까? 결론부터 말하자면 멀티스레드와 마찬가지로 동기화 제어를 해주어야 한다. 각 쓰레드는 JVM의 Stack 영역을 차지하고, 코루틴은 각각의 작업이 Object로 할당되어 JVM의 Heap에 적재된다. 하지만 Heap영역이라고 해..

Programming/Android 2021.06.16
1
더보기
프로필사진

  • 분류 전체보기
    • Programming
      • Android
      • AWS
      • Kotlin
      • Algorithm
      • Computer Science
      • Github
      • Kotlin Multiplatform
    • 일상

Tag

animation, java, livedata, Android Studio, open source, RecyclerView, ListAdapter, GitHub, Rxjava, viewmodel, LifeCycle, 네트워크 디버깅, Proxy 프로그램, DiffUtil, MVVM, Event Handling, android, Kotlin, Computer Science, unit test,

최근글과 인기글

  • 최근글
  • 인기글

최근댓글

공지사항

페이스북 트위터 플러그인

  • Facebook
  • Twitter

Archives

Calendar

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

방문자수Total

  • Today :
  • Yesterday :

Copyright © Kakao Corp. All rights reserved.

  • github

티스토리툴바