하나의 프로세스 내에서 여러 작업을 여러 쓰레드를 통해 동시에 실행할 수 있도록 하는 방식이다.
특징
1. 경량화된 실행 단위
- 낮은 오버헤드 : 같은 프로세스 내에서 실행되므로 컨텍스트 스위칭 비용이 낮으며 스레드 간 전환이 훨씬 가볍고 빠르다.
- 빠른 전환 : 스레드는 각각 스택과 레지스터를 갖지만, 코드나 힙 메모리 등은 공유하기 때문에 전환 시 재설정해야 할 데이터의 양이 적어 전환 속도가 빠르다.
2. 효율적인 데이터 공유
- 공유 메모리 : 데이터 전달이 빠르다
- 동기화 관리 : 동시에 접근할 경우는 동기화 문제가 있다.
3. 응답성 및 처리 성능 향상
- 병렬 처리 : I/O작업과 CPU직약적 작업을 분리하여 동시에 처리
- 리소스 활용 최적화 : CPU의 멀티코어 환경에서 각 스레드를 개별 코어에 할당하여 병렬 처리가 가능해진다.
'cs(with 매일메일)' 카테고리의 다른 글
| [260212목] GC알고리즘은 어떤 것이 있나요? (0) | 2026.02.19 |
|---|---|
| [260211수] PRG 패턴에 대해서 설명해 주세요. (0) | 2026.02.19 |
| [260209월] RDB에서 페이징 쿼리의 필요성을 설명해 주세요. (0) | 2026.02.09 |
| [260206금] 낙관적 락과 비관적 락에 대해 설명해주세요. (0) | 2026.02.06 |
| [260205목] 자바 프로그램이 실행되는 흐름을 설명해주세요. (0) | 2026.02.06 |