Files
2nd/AI/Concurrent Programming.md
T

29 lines
1.6 KiB
Markdown

---
id: P-REINFORCE-AI-CONCUR
category: "[[10_Wiki/💡 Topics/Programming & Language]]"
confidence_score: 0.98
tags: [Concurrent Programming, Multi-threading, Parallelism, Async]
last_reinforced: 2026-04-20
---
# [[Concurrent-Programming]] (동시성 프로그래밍)
## 📌 한 줄 통찰 (The Karpathy Summary)
> "함께 달리는 기술." 여러 작업이 하나의 자원을 두고 싸우지 않게 조율하며, 한 번에 많은 일을 처리하는 오케스트레이션이다.
## 📖 구조화된 지식 (Synthesized Content)
- **Concurrecy vs Parallelism**:
- **Concurrency**: 논리적으로 여러 작업이 동시에 진행되는 것(Context Switch).
- **Parallelism**: 물리적으로 여러 CPU에서 작업이 동시에 돌아가는 것.
- **Race Condition & Deadlock**:
- 자원을 두고 경쟁할 때 데이터가 꼬이거나(Race), 서로 기다리느라 멈춰버리는(Deadlock) 현상. 이를 해결하기 위해 Mutex, Semaphore, Actor model 등이 쓰인다.
- **Asynchronous I/O**:
- 네트워크 요청처럼 오래 걸리는 일을 던져두고 다음 일을 처리하다가, 완료되면 알림을 받는 방식. (JS의 Event Loop가 대표적).
## ⚠️ 모순 및 업데이트 (RL Update)
- 동시성은 '공짜'가 아니다. 스레드나 프로세스를 전환하는 오버헤드가 더 클 수도 있다. 최근에는 Coroutine(Go, Rust)이나 가상 스레드(Java) 같이 아주 가벼운 단위의 동시성 모델이 주류로 자리 잡았다.
## 🔗 지식 연결 (Graph)
- Related: [[Distributed-Systems-Engineering]] , [[B-Tree]]
- Foundation: [[Clean-Architecture-Implementation]]