Skip to content

nooose/kotlin-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1fa9de8 Β· Feb 25, 2024

History

57 Commits
Nov 25, 2023
Feb 25, 2024
Feb 9, 2024
Nov 25, 2023
Feb 25, 2024
Feb 9, 2024
Nov 25, 2023
Nov 25, 2023
Nov 25, 2023
Nov 25, 2023

Repository files navigation

Kotlin ν•™μŠ΅

  • Kotlin 1.9.21
  • JDK 17

Coroutine

루틴 / 코루틴 비ꡐ

루틴 코루틴
μ‹œμž‘λ˜λ©΄ 끝날 λ•ŒκΉŒμ§€ λ©ˆμΆ”μ§€ μ•ŠλŠ”λ‹€. μ€‘λ‹¨λ˜μ—ˆλ‹€κ°€ 재개될 수 μžˆλ‹€.
ν•œ 번 λλ‚˜λ©΄ 루틴 λ‚΄μ˜ 정보가 사라진닀. μ€‘λ‹¨λ˜λ”λΌλ„ 루틴 λ‚΄μ˜ 정보가 사라지지 μ•ŠλŠ”λ‹€.

μŠ€λ ˆλ“œ / 코루틴 비ꡐ

μŠ€λ ˆλ“œ 코루틴
κ°œλ… ν”„λ‘œμ„ΈμŠ€λ³΄λ‹€ μž‘μ€ κ°œλ… μŠ€λ ˆλ“œλ³΄λ‹€ μž‘μ€ κ°œλ…
ν•œ μŠ€λ ˆλ“œλŠ” 였직 ν•œ ν”„λ‘œμ„ΈμŠ€μ—λ§Œ ν¬ν•¨λ˜μ–΄ μžˆλ‹€. ν•œ μ½”λ£¨ν‹΄μ˜ μ½”λ“œλŠ” μ—¬λŸ¬ μŠ€λ ˆλ“œμ—μ„œ 싀행될 수 μžˆλ‹€.
Context switching context switching λ°œμƒ μ‹œ, stack μ˜μ—­μ΄ κ΅μ²΄λœλ‹€. (ν•œ μŠ€λ ˆλ“œμ—μ„œ μ‹€ν–‰ν•˜λŠ” 경우) context switching λ°œμƒ μ‹œ λ©”λͺ¨λ¦¬ ꡐ체가 μ—†λ‹€.
양보 OSκ°€ μŠ€λ ˆλ“œλ₯Ό κ°•μ œλ‘œ λ©ˆμΆ”κ³  λ‹€λ₯Έ μŠ€λ ˆλ“œλ₯Ό μ‹€ν–‰ν•œλ‹€. 코루틴 μŠ€μŠ€λ‘œκ°€ λ‹€λ₯Έ μ½”λ£¨ν‹΄μ—κ²Œ 양보(yield())ν•œλ‹€.

CoroutineScope

  • 코루틴이 탄생할 수 μžˆλŠ” μ˜μ—­

CoroutineContext

  • 코루틴과 κ΄€λ ¨λœ 데이터λ₯Ό 보관

μ£Όμš” Dispatcher μ’…λ₯˜

Default

  • κ°€μž₯ 기본적인 λ””μŠ€νŒ¨μ²˜, CPU μžμ›μ„ 많이 μ“Έ λ•Œ ꢌμž₯
  • 별닀λ₯Έ 섀정이 μ—†μœΌλ©΄ 이 λ””μŠ€νŒ¨μ²˜κ°€ μ‚¬μš©λ¨

IO

  • I/O μž‘μ—…μ— μ΅œμ ν™”λœ λ””μŠ€νŒ¨μ²˜

Main

  • 보톡 UI μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‘°μž‘ν•˜κΈ° μœ„ν•œ λ””μŠ€νŒ¨μ²˜
  • μ•ˆλ“œλ‘œμ΄λ“œ 같은 UIκ°€ ν•„μš”ν•œ ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©

Suspend

  • 코루틴이 쀑지 λ˜μ—ˆλ‹€κ°€ 재개 될 수 μžˆλŠ” 지점
  • 코루틴 suspend ν•¨μˆ˜ λ™μž‘μ›λ¦¬λŠ” Continuation Passing Style (CPS) 원리에 따라 λ™μž‘λœλ‹€.

About

πŸ“• Kotlin ν•™μŠ΅

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages