Skip to content

Latest commit

Β 

History

History
46 lines (27 loc) Β· 2.29 KB

File metadata and controls

46 lines (27 loc) Β· 2.29 KB

μŠ€λ ˆλ“œ(Thread)λž€?

μ–΄ν”Œλ¦¬ν…Œμ΄μ…˜ μ‹€ν–‰μ˜ κ°€μž₯ κΈ°λ³Έ λ‹¨μœ„

  • ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ 각각 Stack만 λ”°λ‘œ ν• λ‹Ή λ°›κ³  Code, Data, Heap μ˜μ—­μ€ 곡유
  • μ‹œμŠ€ν…œ μŠ€λ ˆλ“œ, μ‚¬μš©μž μŠ€λ ˆλ“œ, 이벀트 μŠ€λ ˆλ“œ 등이 μžˆλ‹€.
  • μ‹œμŠ€ν…œμ—μ„œ μƒμ„±ν•˜κ³  κ΄€λ¦¬ν•˜λ©°, μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 첫번째 μŠ€λ ˆλ“œλŠ” μ‹œμŠ€ν…œ μŠ€λ ˆλ“œμ΄λ‹€.
  • μ‚¬μš©μž μŠ€ν…Œλ“œλŠ” λ©”μΈμŠ€ν…Œλ“œ 외에 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λͺ…μ‹œμ μœΌλ‘œ μƒμ„±ν•œ μŠ€λ ˆλ“œμ΄λ‹€.
  • μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό 화면에 ν‘œμ‹œν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œμ˜ λ©”μΈμŠ€λ ˆλ“œλŠ” 이벀트 μŠ€λ ˆλ“œλΌ λΆ€λ₯Έλ‹€.
  • 이벀트 μŠ€λ ˆλ“œλŠ” 마우슀 ν΄λ¦­μ΄λ‚˜ ν‚€ μž…λ ₯ 듀이 μžˆλ‹€.

μ„ μ ν˜• μŠ€λ ˆλ”©

  • λ™μ‹œμ— 돌릴 수 μžˆλŠ” μŠ€λ ˆλ“œ μˆ˜λŠ” 컴퓨터에 μžˆλŠ” μ½”μ–΄ 개수둜 μ œν•œλœλ‹€.
  • OSμ—μ„œλŠ” μ•„λ¬΄λ•Œλ‚˜ μŠ€λ ˆλ“œ 싀행을 λ©ˆμΆ”κ³  λ‹€λ₯Έ μŠ€λ ˆλ“œλ₯Ό μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.
  • μœ„μ™€ 같은 방법을 μ„ μ ν˜• μŠ€λ ˆλ”©(Preemptive Threading)μ΄λΌν•œλ‹€.

ν˜‘λ ₯ν˜• λͺ¨λΈ(Cooperative model)

  • λ°˜λŒ€λ‘œ μ–΄λ–€ μŠ€λ ˆλ“œκ°€ λ©ˆμΆ”κ³  λ‹€λ₯Έ μŠ€λ ˆλ“œλ‘œ λŒμ•„κ°€λ €λ©΄ κ°•μ œκ°€ μ•„λ‹Œ λͺ…μ‹œμ μΈ 행동이 ν•„μš”ν•œ 경우.

μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­(Context Switching)

  • λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ μ‹œμž‘λ  수 μžˆλ„λ‘ ν•œ μŠ€λ ˆλ“œλ₯Ό λ©ˆμΆ”λŠ” 것.

λ©€ν‹° μŠ€λ ˆλ”©μ΄λž€?

  • ν•˜λ‚˜μ˜ μ‘μš©ν”„λ‘œκ·Έλž¨μ„ μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œλ‘œ κ΅¬μ„±ν•˜κ³  각 μŠ€λ ˆλ“œκ°€ ν•˜λ‚˜μ˜ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λ„λ‘ ν•˜λŠ” 것

λ©€ν‹° μŠ€λ ˆλ“œ 동기화 문제

μŠ€λ ˆλ“œ κ°„μ˜ μžμ› κ³΅μœ λŠ” μ „μ—­ λ³€μˆ˜λ₯Ό μ΄μš©ν•˜λ―€λ‘œ ν•¨κ»˜ μ‚¬μš©ν•  λ•Œ 좩돌이 λ°œμƒν•  수 있음

λ©€ν‹° ν”„λ‘œμ„ΈμŠ€ λŒ€μ‹  λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 이유?

μžμ›μ˜ νš¨μœ¨μ„±μ΄ λ†’μ•„μ§€κ³  처리 λΉ„μš© 및 응닡 μ‹œκ°„μ΄ 쀄어든닀.

같은 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ λ©”λͺ¨λ¦¬ 이용 효율이 μ˜¬λΌκ°„λ‹€.

  • ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜μ—¬ μžμ›μ„ ν• λ‹Ήν•˜λŠ” μ‹œμŠ€ν…œ 콜이 쀄어듦.
  • ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ λ¬Έλ§₯ κ΅ν™˜μ‹œ CPU λ ˆμ§€μŠ€ν„° ꡐ체뿐만 μ•„λ‹ˆλΌ RAMκ³Ό CPU μ‚¬μ΄μ˜ μΊμ‹œ λ©”λͺ¨λ¦¬μ— λŒ€ν•œ λ°μ΄ν„°κΉŒμ§€ μ΄ˆκΈ°ν™”λ˜λ―€λ‘œ μ˜€λ²„ν—€λ“œκ°€ 큼
  • Stack μ΄μ™Έμ˜ λͺ¨λ“  λ©”λͺ¨λ¦¬λ₯Ό κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— μŠ€λ ˆλ“œ κ°„μ˜ 톡신 λΉ„μš©μ΄ 더 적음
  • λ¬Έλ§₯ κ΅ν™˜μ‹œ Stack μ˜μ—­λ§Œ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μŠ€λ ˆλ“œ κ°„μ˜ μ „ν™˜ 속도가 더 빠름