공부/OS

싱글 스레드(single thread)란?

셩잇님 2023. 6. 5. 18:42
반응형

 

 

1. 싱글 스레드란?

컴퓨터 과학에서 단일 스레드는 중앙 처리 장치(CPU)가 중단 없이 실행할 수 있는 명령어 시퀀스를 의미합니다. 명령어가 차례로 순차적으로 실행되는 프로그램 내의 단일 제어 흐름을 나타냅니다. 이는 프로세스가 취할 수 있는 실행 경로입니다. 단일 스레드 프로그램에는 실행 스레드가 하나만 있으므로 한 번에 하나의 작업만 수행할 수 있습니다.

2. 싱글 스레드의 특징
실행 흐름: 단일 스레드는 프로그램의 제어 흐름에 따라 순차적으로 명령어를 실행합니다. 각 명령은 다음 명령으로 넘어가기 전에 실행됩니다. 이러한 선형 실행을 통해 간단하고 예측 가능한 작업 순서가 가능합니다.

작업 차단: 단일 스레드가 사용자의 입력을 기다리거나 느린 I/O 장치에 액세스하는 등 블로킹 작업이 발생하면 일반적으로 실행을 일시 중단하고 블로킹 작업이 완료될 때까지 기다립니다. 이 시간 동안 CPU는 유휴 상태로 유지되며 다른 작업을 수행할 수 없습니다.

리소스 공유: 단일 스레드 환경에서는 메모리, 파일, 장치와 같은 리소스가 실행 중인 스레드에 의해서만 액세스되고 조작됩니다. 스레드는 이러한 리소스를 단독으로 제어할 수 있으며 다른 스레드의 간섭 없이 자유롭게 액세스하고 수정할 수 있습니다.

제한된 동시성: 한 번에 하나의 스레드만 실행되므로 단일 스레드 프로그램은 여러 작업을 동시에 수행할 수 없습니다. 프로그램에 여러 함수나 연산이 있더라도 순차적으로 차례로 실행됩니다.

단순화된 프로그래밍 모델: 단일 스레드 프로그래밍은 일반적으로 다중 스레드 프로그래밍에 비해 더 간단합니다. 동시 실행이 없기 때문에 공유 데이터를 처리하고 리소스에 대한 액세스를 동기화하는 복잡성이 줄어듭니다. 잠금, 세마포어 또는 뮤텍스와 같은 명시적인 동기화 메커니즘이 필요하지 않습니다.

 

3. 싱글 스레드의 장점
개발 및 디버깅이 더 쉽습니다.
경쟁 조건이 발생할 가능성이 적기 때문에 더 안정적입니다.
데이터 손상 가능성이 적기 때문에 더 안전합니다.

 

4. 싱글 스레드의 단점
여러 CPU 또는 코어를 활용할 수 없으므로 효율성이 떨어집니다.
한 번에 하나의 작업만 처리할 수 있으므로 응답이 느릴 수 있습니다.
한 작업이 완료될 때까지만 기다렸다가 다음 작업을 시작할 수 있기 때문에 차단될 수 있습니다.

 

5. 결론
단일 스레드 실행은 병렬 처리가 필요하지 않은 간단한 애플리케이션이나 시나리오에서 일반적으로 사용됩니다. 선형 실행 흐름이 있거나 명령줄 유틸리티, 기본 스크립트 또는 소규모 애플리케이션과 같이 본질적으로 순차적인 작업을 수행하는 프로그램에 적합할 수 있습니다.

그러나 단일 스레드 실행은 최신 하드웨어 기능을 활용하고 시스템 리소스를 효율적으로 사용하는 데 한계가 있습니다. 병렬 처리, 사용자 상호 작용에 대한 응답성 또는 여러 작업을 동시에 처리해야 하는 시나리오에서는 성능이 저하될 수 있습니다.


컴퓨터의 성능이 향상되고 CPU 또는 코어 수가 증가함에 따라 멀티 스레드 프로그램이 점점 더 보편화되고 있습니다. 이로인해 여러 스레드 또는 프로세스가 동시에 실행되는 멀티 스레딩 또는 멀티 태스킹 기술을 사용하여 복잡한 애플리케이션에서 리소스 활용도를 높이고 응답성을 향상시킬 수 있습니다.

 

 

 

반응형