[10λΆ„ ν…Œμ½”ν†‘] 🐰 λ©ν† μ˜ Blocking vs Non-Blocking, Sync vs Async

JIWOO YUNΒ·2023λ…„ 4μ›” 7일
0
post-custom-banner

movie


Blocking

  • μžμ‹ μ˜ μž‘μ—…μ„ μ§„ν–‰ν•˜λ‹€κ°€ λ‹€λ₯Έ 주체의 μž‘μ—…μ΄ μ‹œμž‘λ˜λ©΄ λ‹€λ₯Έ μž‘μ—…μ΄ 끝날 λ•ŒκΉŒμ§€ κΈ°λ‹€λ Έλ‹€κ°€ μžμ‹ μ˜ μž‘μ—…μ„ μ‹œμž‘ν•˜λŠ” 것
    • κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ— 아무것도 λͺ»ν•œλ‹€.

Non-Blocking

  • λ‹€λ₯Έ 주체의 μž‘μ—…μ— 관련없이 μžμ‹ μ˜ μž‘μ—…μ„ ν•˜λŠ” 것
    • λ„˜κ²¨μ€„κ±°λŠ” λ°”λ‘œ λ„˜κ²¨μ£Όκ³  자기 ν• κΊΌ ν•˜λŸ¬κ°„λ‹€.

Synchronous

  • μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•˜κ±°λ‚˜ ,λ™μ‹œμ— λλ‚˜κ±°λ‚˜ , λλ‚˜λŠ” λ™μ‹œμ— μ‹œμž‘ν•¨μ„ 의미
    • μ›λž˜ μž‘μ—…μ„ λ‹€λ₯Έ 곳에 μš”μ²­μ„ ν•˜κ³  κΈ°λ‹€λ¦¬κ±°λ‚˜ λ‹€λ₯ΈμΌμ„ 진행 -> 도움에 λŒ€ν•œ 응닡이 였면 κ·Έκ²°κ³Όλ₯Ό ν†΅ν•΄μ„œ λ°”λ‘œ μ²˜λ¦¬μ§„ν–‰

Asynchronous

  • μ‹œμž‘ ,μ’…λ£Œκ°€ μΌμΉ˜ν•˜μ§€μ•ŠμœΌλ©°, λλ‚˜λŠ” λ™μ‹œμ— μ‹œμž‘ν•˜μ§€ μ•ŠμŒμ„ μ˜λ―Έν•œλ‹€.
    • μ›λž˜ 진행을 ν•˜λ‹€κ°€ λ‹€λ₯Έ 곳에 도움을 μš”μ²­ν•˜κ³ μ„œ κΈ°λ‹€λ¦¬κ±°λ‚˜ λ‹€λ₯ΈμΌμ„ 진행 -> 도움에 λŒ€ν•œ 응닡이 와도 κ·Έ μ‘λ‹΅κ²°κ³Όμ—λŒ€ν•΄μ„œ λ°”λ‘œκ°€ μ•„λ‹ˆλΌ μ–Έμ  κ°€ 처리λ₯Ό ν•˜λ©΄λœλ‹€.

이 4가지λ₯Ό μ‘°ν•©

Blocking/Sync

  • blocking의 관점 : μ œμ–΄κΆŒ -> λ‹€λ₯Έ μž‘μ—… μ§„ν–‰μ‹œ λ™μž‘ x

  • Sync : 결과의 처리 -> 응닡을 λ°”λ‘œμ²˜λ¦¬

    == > λ‹€λ₯Έ μž‘μ—…μ„ μ§„ν–‰μ‹œ 응닡이 μ˜¬λ•ŒκΉŒμ§€ 아무 μž‘μ—…λ„ ν•˜μ§€μ•Šλ‹€κ°€ 응닡결과가 였면 λ°”λ‘œ 처리


NonBlocking/Sync

  • λ‹€λ₯Έ μž‘μ—…μ„ μ§„ν–‰μ‹œ μ€‘κ°„μ€‘κ°„λ§ˆλ‹€ μ‘λ‹΅μ˜ κ²°κ³Όκ°€ λ‚˜μ™”λŠ”μ§€ 계속 λ¬Όμ–΄λ³Έλ‹€.
  • 응닡을 κΈ°λ‹€λ¦΄λ•Œ 자기 할일을 ν•˜λ©΄μ„œ 쀑간쀑간에 κ²°κ³Όκ°€ λ‚˜μ™”λŠ”μ§€ μš”μ²­ -> κ²°κ³Όκ°€ λ‚˜μ˜€λ©΄ λ°”λ‘œ 처리

Blocking/Async

  • μž‘μ—…μ„ μš”μ²­ν•˜κ³  결과에 관심은 μ—†μ§€λ§Œ κΈ°λ‹€λ¦°λ‹€ -> κ²°κ³Όλ₯Ό λ°›μœΌλ©΄ λ‚˜μ€‘μ— 처리.

Non-Blocking/Async

  • λ‹€λ₯Έ μž‘μ—…μ΄ μ‹œμž‘λ˜μ–΄λ„ μžμ‹ μ΄ ν•˜λ˜κ²ƒμ„ λ©ˆμΆ”μ§€μ•ŠμŒ -> μ–‘μͺ½μ—μ„œ 각자처리
  • μžμ‹ μ˜ 일을 끝내고 처리 진행

-> μžλ°” 슀크립트 API μš”μ²­ν•˜κ³  call back 으둜 μš”μ²­ μ²˜λ¦¬μ‹œμ— μ‚¬μš©λœλ‹€.

profile
μ—΄μ‹¬νžˆν•˜μž
post-custom-banner

0개의 λŒ“κΈ€