Skip to content

nooose/kotlin-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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

 
 
 

Languages