CS

[OS]멀티스레드 프로그래밍이란? 장점 및 사용환경, 주의점

KJihun 2023. 10. 5. 17:50
728x90

멀티스레드 프로그래밍: 하나의 프로그램이 동시에 여러 작업을 수행할 수 있게 하는 프로그래밍 기법


단일 스레드 프로그래밍과 비교했을 때의 이점
1.성능 향상: 일반적으로 단일 스레드보다 빠르게 작업을 수행할 수 있다.
2.자원 활용: 하나의 스레드가 대기 중일 때, 다른 스레드 작업을 수행할 수 있어 CPU, 메모리 등 자원을 효과적으로 활용할 수 있다
3. 응답성 향상: 여러 작업을 병렬로 처리할 수 있으므로, 프로그램이 빠르게 응답할 수 있다.

멀티스레드 프로그래밍을 사용하는 환경
1.다중 사용자 환경: 여러 사용자가 동시에 시스템을 사용할 때 각각의 요청을 동시에 처리하기 위해 사용.
2.GUI 애플리케이션: 그래픽 사용자 인터페이스(GUI)를 가진 애플리케이션에서는 사용자의 입력, 화면 업데이트, 백그라운드 작업 등을 병렬로 처리해야 한다.
3.네트워크 프로그래밍: 여러 클라이언트 요청을 처리해야 한다.
4.DB 작업: 여러 개의 쿼리를 동시에 처리하거나, DB 연결 관리 등의 작업에서 멀티스레드를 사용한다.

 

 

주의점
동시에 여러 스레드가 실행되므로 스레드 간에 하나의 데이터를 공유하는 경우 동시성 발생에 대해 주의가 필요하다.

데드락과 같은 문제를 예방하기 위해서 주의를 기울여야 한다.