본문으로 건너뛰기
Previous
Next
Thread 뜻과 의미 | 기술 용어 사전 | pkglog
시스템

Thread

다른 이름: 스레드

정의

프로세스 내 실행 단위. 같은 프로세스의 메모리(Code, Data, Heap) 공유, Stack만 독립. Context Switch 빠름(프로세스 대비). pthread(POSIX), Java Thread, C++ std::thread. 동기화(Mutex, Semaphore) 필요. Race Condition, Deadlock 주의

상세 설명

📋 기술 스펙

  • 공유: Code, Data, Heap, 파일 디스크립터
  • 독립: Stack, 레지스터, 스레드 로컬 저장소
  • TID: Thread ID (고유 식별자)
  • Context Switch: 가벼움 (프로세스 대비 10배 빠름)
  • 생성: pthread_create, Java new Thread, C++ std::thread
  • Join: 스레드 종료 대기
  • 동기화: Mutex, Semaphore, Condition Variable

💡 실무 활용

  • Web Server: 요청당 스레드 (Apache Thread Pool)
  • GUI: UI 스레드 + 백그라운드 작업
  • 병렬 처리: 데이터 분할 처리
  • 비동기 I/O: 네트워크, 파일 읽기

장점

  • 빠른 생성: 프로세스 대비 10배 빠름
  • 메모리 공유: IPC 불필요
  • Context Switch: 가벼움
  • 멀티코어 활용: 병렬 처리

⚠️ 단점 및 제약

  • Race Condition: 동기화 필수
  • Deadlock: 잘못된 락 순서
  • 디버깅 어려움: 비결정적 버그
  • Thread-safe: 모든 코드 동기화 필요

🔧 호환성

POSIX pthread, Java Thread, C++ std::thread, Python threading

📚 표준 정보

표준화 기구: POSIX Threads (IEEE 1003.1c)

출시 연도: 1995년