프로그래밍 용어

멀티스레딩 Multi-Threading

kark 2025. 2. 10. 09:32
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