고도고도
🍎🍏
고도고도
전체 방문자
8,030
오늘
0
어제
31
  • 분류 전체보기 (151) N
    • 🔨 프로젝트 (0)
      • TP 1 (0)
      • WhiteHCCTV (0)
      • FootPrint (0)
    • 💻 개발 (44) N
      • TIL (16)
      • Android (6)
      • Kotlin (4)
      • Flutter (9)
      • Node.js (5)
      • Error (4) N
    • ✏️ 알고리즘 (6)
      • Graph (6)
      • String (0)
      • Sort (0)
    • ✍️ 코테 준비 (44)
      • Math (1)
      • Implementation (3)
      • String (3)
      • Brute Force (5)
      • Back Tracking (7)
      • Greedy (0)
      • Dynamic Programming (13)
      • Binary Search (1)
      • DFS, BFS (5)
      • Shortest Path (2)
      • Two Pointer (4)
      • MST (0)
    • 📚 CS (6)
      • Operating System (6)
    • ⛹️ 라이프 (51) N
      • 2020 겨울방학 모칵코(팀) (13)
      • 2020 겨울방학 모각코(개인) (13)
      • 2021 여름방학 모칵코(팀) (8)
      • 2021 여름방학 모각코(개인) (7)
      • 코딩 테스트 (1)
      • 회고 (8) N

블로그 메뉴

  • 홈
  • 깃허브
  • 링크드인

인기 글

  • [TIL] 22.03.13
    2022.03.13
    [TIL] 22.03.13
  • [문자열 / Kotlin] 2020 KAKAO⋯
    2022.03.11
    [문자열 / Kotlin] 2020 KAKAO⋯
  • [TIL] 22.03.20
    2022.03.20
    [TIL] 22.03.20
  • [퍼듀 일기] 적응 완료
    2022.03.05
    [퍼듀 일기] 적응 완료
  • [구현 / Kotlin] 2022 SK ICT F⋯
    2022.03.12
    [구현 / Kotlin] 2022 SK ICT F⋯

최근 글

  • [Error / Gradle] mockup1/andr⋯
    2022.08.13
    [Error / Gradle] mockup1/andr⋯
  • [NCSOFT] 2022 NC Summer Inter⋯
    2022.08.10
    [NCSOFT] 2022 NC Summer Inter⋯
  • [Flutter] ModalBottomSheet가⋯
    2022.08.09
    [Flutter] ModalBottomSheet가⋯
  • [Error / Gradle] The current⋯
    2022.08.09
    [Error / Gradle] The current⋯
  • [Flutter / Dart] What is Equa⋯
    2022.08.06
    [Flutter / Dart] What is Equa⋯

최근 댓글

  • NC......가슴이...웅장해집니다⋯
    이상한핑구 🐧
  • 고도고도님 멋져요!
    mjj
  • 잘보고 갑니다~
    개갓세
  • 좋은 글이네요
    날인로세
  • 잘 보고 갑니다^^
    프로퍼티
hELLO · Designed By 정상우.
고도고도

🍎🍏

[TIL] 22.03.23
💻 개발/TIL

[TIL] 22.03.23

2022. 3. 23. 15:34

공부한 것

코루틴

알게된 것

1. 코루틴

어제에 이어 코루틴 에 대해 학습했다. 코루틴은 코루틴 스코프 를 통해서 실행할 수 있다. 코루틴 스코프 를 사용하지 않고도 코루틴을 실행할 수 있지만 이런 경우에 작업이 종료된 코루틴에 대해 별도의 처리를 해줘야 한다.

Coroutine Scope

Coroutine Scope 는 코루틴의 범위를 정의하는 인터페이스 이다. 말 그대로 코루틴이 실행되는 범위를 지정한다. 모든 코루틴은 Scope 내에서 실행되어야 하고 액티비티 나 프래그먼트 의 생명주기 에 따라 코루틴 을 취소 하여 메모리 릭 을 방지한다. Global Scope 와 Coroutine Scope 가 존재한다.

 

1. Global Scope : 앱의 생명주기와 함께 동작하기에 별도의 생명 주기 관리가 필요 없다. 앱이 실행되고 종료되기 까지 긴 시간 실행되는 코루틴에 적합
2. Coroutine Scope : 코루틴이 필요할 때 실행하고 종료하기 위한 스코프, 특정 이벤트에 서버와 통신할 때 적합

Coroutine Scope 의 경우 Dispatcher를 통해 코루틴이 실행될 쓰레드를 지정할 수 있다.

Coroutine Dispatcher

코루틴은 Dispatcher 를 통해 쓰레드풀 내의 적절한 쓰레드 에 코루틴을 배분한다.

 

1. Dispatchers.Default : 별도의 Context를 지정하지 않은 경우 해당 디스패쳐로 자동으로 설정되며 CPU를 많이 사용하는 작업을 진행할 때 적합

2. Dispatchers.IO : 디스크 또는 네트워크의 I/O 작업을 실행할 때 적합

3. Dispatchers.Unconfined : 중단된 쓰레드에서 다시 시작하는 디스패쳐로 사용하지 않는 것을 추천

4. Dispatchers.Main : 백그라운드 쓰레드에서 코루틴을 실행하는 디스패쳐로 UI와 상호작용하는 작업을 실행할 때 적합

Coroutine Builder

Coroutine Builder 는 Coroutine Scope 의 확장 함수 로 새로운 코루틴을 실행하기 위해 사용한다.

 

1. launch : 현재 스레드를 Block 하지 않고 새로운 코루틴을 실행한다. Job 인스턴스를 반환한다.

2. Async : 현재 스레드를 Block 하지 않고 새로운 코루틴을 실행한다. Deferred<T> 인스턴스를 반환하고 await 로 값을 얻는다.

3. runBlocking : 작업이 끝날 때까지 현재 쓰레드를 Block 한다. T 타입의 결과를 반환한다.

공부할 것

MVVM

느낀 점

학습한 코루틴을 실제로 적용해보자

저작자표시비영리변경금지

'💻 개발 > TIL' 카테고리의 다른 글

[TIL] 22.04.18  (0) 2022.04.18
[TIL] 22.04.17  (0) 2022.04.17
[TIL] 22.03.23  (0) 2022.03.23
[TIL] 22.03.22  (0) 2022.03.22
[TIL] 22.03.20  (0) 2022.03.20
[TIL] 22.03.19  (0) 2022.03.19
    '💻 개발/TIL' 카테고리의 다른 글
    • [TIL] 22.04.18
    • [TIL] 22.04.17
    • [TIL] 22.03.22
    • [TIL] 22.03.20
    고도고도
    고도고도
    좋아하는 것을 하자\n 스위프트 찍먹중\n 광고 없는 블로그
    댓글쓰기
    다음 글
    [백트래킹 / Kotlin] BOJ 15649 ~ 15652 - N과 M (1 ~ 4)
    이전 글
    [문자열 / Kotlin] 2019 카카오 개발자 겨울 인턴십 - 튜플
    • 이전
    • 1
    • ···
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • ···
    • 151
    • 다음