concurrency 3

# Java Concurrency In Practice - Chapter 1

Introduction 1.1 κ°„λž΅ν•œ λ™μ‹œμ„±μ˜ 역사 (A (Very) Brief History of Concurrency) λ¦¬μ†ŒμŠ€ ν™œμš© (Resource utilizatio) ν”„λ‘œκ·Έλž¨μ€ μž…λ ₯ λ˜λŠ” 좜λ ₯κ³Ό 같은 μ™ΈλΆ€ μž‘μ—…μ„ κΈ°λ‹€λ €μ•Όν•˜λ©° λŒ€κΈ°ν•˜λŠ” λ™μ•ˆ μœ μš©ν•œ μž‘μ—…μ„ μˆ˜ν–‰ ν•  수 μ—†λ‹€. 이 λŒ€κΈ° μ‹œκ°„μ„ μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 것이 더 효율적일 것이닀. 곡평 (Fairness) μ—¬λŸ¬ μ‚¬μš©μž 및 ν”„λ‘œκ·Έλž¨μ΄ μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ λ™μΌν•œ μ†Œμœ κΆŒμ„ μ£Όμž₯ ν•  수 μžˆλ‹€. ν•œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ ν•œ λ‹€μŒ κ·Έ ν”„λ‘œκ·Έλž¨μ΄ μ™„μ „νžˆ μ’…λ£Œλœ ν›„, λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ„ μ‹œμž‘ν•˜λŠ” 것보닀 μ„Έλ°€ν•œ μ‹œκ°„ μŠ¬λΌμ΄μ‹±μ„ 톡해 컴퓨터 μžμ›μ„ κ³΅μœ ν•˜λŠ” 것이 μ’‹λ‹€. 편의 (Convenience) 단일 ν”„λ‘œκ·Έλž¨μ΄ λͺ¨λ“  μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ μž‘μ„±ν•˜λŠ” 것보닀..

JAVA/Concurrency 2020.02.03

# Java Concurrency and Multithreading Tutorial - Concurrency vs Parallelism

Concurrency(λ™μ‹œμ„±) 및 Parallelism(병렬 처리)λΌλŠ” μš©μ–΄λŠ” μ’…μ’… 닀쀑 μŠ€λ ˆλ“œ ν”„λ‘œκ·Έλž¨κ³Ό κ΄€λ ¨ν•˜μ—¬ μ‚¬μš©λœλ‹€. κ·ΈλŸ¬λ‚˜ Concurrencyκ³Ό Parallelism은 μ •ν™•νžˆ 무엇을 μ˜λ―Έν•˜λ©°, 이 두 μš©μ–΄λŠ” μ–΄λ–»κ²Œ λ‹€λ₯Έκ°€? Concurrency ConcurrencyλŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ λ‘˜ μ΄μƒμ˜ μž‘μ—…μ„ λ™μ‹œμ— μ§„ν–‰ν•˜κ³  μžˆμŒμ„ μ˜λ―Έν•œλ‹€. 컴퓨터에 CPUκ°€ ν•˜λ‚˜λ§Œ 있으면 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ λ™μ‹œμ— 두 개 μ΄μƒμ˜ μž‘μ—…μ„ μ§„ν–‰ν•˜μ§€ λͺ»ν•  수 μžˆμ§€λ§Œ, μ‘μš© ν”„λ‘œκ·Έλž¨ λ‚΄λΆ€μ—μ„œ ν•œ λ²ˆμ— 두 개 μ΄μƒμ˜ μž‘μ—…μ΄ 처리되고 μžˆλ‹€. λŒ€μ‹  CPUλŠ” μž‘μ—…μ΄ μ™„λ£Œ 될 λ•ŒκΉŒμ§€ λ‹€λ₯Έ μž‘μ—…κ°„μ— μ „ν™˜ν•œλ‹€. λ‚΄λΆ€μ—μ„œ 단일 μŠ€λ ˆλ“œλ§Œ μ‹€ν–‰ν•˜λ”λΌλ„ λ™μ‹œ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°€μ§ˆ 수 μžˆλ‹€. CPUκ°€ μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ μž‘μ—…κ°„ μ „ν™˜μ„ λ°˜λ³΅ν•˜λ©° ..

JAVA/Concurrency 2020.01.31

# Java Concurrency and Multithreading Tutorial - Multithreading Benefits

Multithreading Benefits λ©€ν‹° μŠ€λ ˆλ”©μ˜ κ°€μž₯ μ€‘μš”ν•œ 이점은 μ•„λž˜μ™€ κ°™λ‹€. Better CPU utilization Simple program design in some situations More responsive programs More fair division of CPU resources between different tasks Better CPU Utilization 둜컬 파일 μ‹œμŠ€ν…œμ—μ„œ νŒŒμΌμ„ 읽고 μ²˜λ¦¬ν•˜λŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ„ 상상해봐라. λ””μŠ€ν¬μ—μ„œ νŒŒμΌμ„ μ½λŠ”λ° 5μ΄ˆκ°€ 걸리고 μ²˜λ¦¬ν•˜λŠ”λ° 2μ΄ˆκ°€ κ±Έλ¦°λ‹€κ³  ν•  λ•Œ, 두 개의 νŒŒμΌμ„ 읽으면 총 14μ΄ˆκ°€ μ†Œμš”λœλ‹€. λ””μŠ€ν¬μ—μ„œ νŒŒμΌμ„ 읽을 λ•Œ λŒ€λΆ€λΆ„μ˜ CPU μ‹œκ°„μ€ λ””μŠ€ν¬κ°€ 데이터λ₯Ό 읽을 λ•ŒκΉŒμ§€ λŒ€κΈ°ν•œλ‹€. κ·Έ μ‹œκ°„ λ™μ•ˆ CPUλŠ” 거의 ..

JAVA/Concurrency 2019.12.31