728x90
멀티스레딩은 하나의 프로세스에서 여러개의 작업 단위(Thread)를 동시에 실행하는 기술
Thread
스레드는 프로그램(프로세스) 내에서 실행되는 작업 단위를 의미
- 하나의 프로세스는 기본적으로 하나의 메인 스레드를 가짐
- 멀티 스레딩을 사용하면 여러 개의 스레드를 생성해 병렬 작업을 처리할 수 있음
멀티 스레딩이 필요한 이유
1. 작업속도 향상 : 여러 작업을 동시에 실행해 성능을 향상시킬 수 있음
- 물리연산, AI, UI업데이트를 각 다른 스레드에서 처리해 더 부드러운 동작을 진행
2.CPU 사용률 최적화 : 현대 CPU는 여러 코어를 가지고 있으며 멀티 스레딩을 활용하면
이 여러개의 코어를 활용하므로 성능을 극대화 할 수 있음
멀티 스레딩의 주의점
1. Race Condition
두개 이상의 스레드가 동시에 같은 데이터를 접근해 충돌하는 문제
해결책 : 락 또는 동기화 기법을 사용
2. Deadlock
두개 이상의 스레드가 서로 상대방을 기다리다가 멈추는 현상
해결책 : 락을 사용할 때 순서를 정해 충돌 방지
3. 컨텍스트 스위칭 비용
너무 많은 스레드를 사용하면 CPU가 스레드를 전환하는데 오버헤드가 발생
해결책 : 적절한 스레드 개수 유지, 스레드 풀 사용
'프로그래밍 용어' 카테고리의 다른 글
마이그레이션이란? Migration (0) | 2024.11.15 |
---|---|
TCP 와 UDP (1) | 2024.11.07 |
네트워크와 OSI 7 계층 (2) | 2024.11.07 |
객체지향(OOP) 4대 특징 (0) | 2024.07.21 |
객체지향(OOP) - 객체란? (0) | 2024.07.21 |