공부/OS

싱글 스레드와 멀티 스레드의 차이점

셩잇님 2023. 6. 5. 19:11
반응형

 

 

1. 싱글 스레드와 멀티 스레드의 차이점

싱글 스레드 프로그램은 실행 스레드가 하나만 있는 프로그램입니다. 즉, 프로그램은 한 번에 한 가지 작업만 수행할 수 있습니다. 반면에 멀티 스레드 프로그램은 실행 스레드가 여러 개 있습니다. 즉, 프로그램이 동시에 여러 가지 작업을 수행할 수 있습니다.

 

단일 스레드

  • 단일 스레드 프로그램에는 실행 경로 또는 스레드가 하나만 있습니다. 프로그램의 명령은 선형적인 방식으로 순차적으로 하나씩 실행됩니다.
  • 단일 스레드 프로그램은 여러 작업을 동시에 수행할 수 없습니다. 사용자 입력을 기다리거나 느린 I/O 장치에 액세스하는 등 차단 작업이 발생하면 작업이 완료될 때까지 전체 프로그램이 일시 중지됩니다.
  • 단일 스레드 프로그램은 일반적으로 공유 데이터를 처리하기 위해 명시적인 동기화 메커니즘이 필요하지 않으므로 설계 및 구현이 더 간단합니다.

 

멀티 스레드

  • 멀티 스레드 프로그램에는 여러 개의 동시 실행 경로 또는 스레드가 있으며, 각 스레드는 독립적으로 실행됩니다.
  • 각 스레드는 프로그램 내에서 별도의 제어 흐름을 나타내므로 프로그램의 여러 부분을 동시에 실행할 수 있습니다.
  • 멀티스레딩은 멀티코어 프로세서 또는 병렬 처리 기능을 활용하여 여러 스레드가 동시에 작업을 실행하는 병렬 처리를 가능하게 합니다.
  • 멀티 스레드 프로그램 내의 스레드는 잠금, 세마포어, 조건 변수와 같은 동기화 기본 요소를 사용하여 통신하고 활동을 동기화할 수 있습니다.
  • 멀티스레딩은 스레드 안전, 경쟁 조건, 동기화 문제와 같은 복잡성을 야기합니다. 공유 데이터에 액세스할 때 정확하고 일관된 동작을 보장하려면 적절한 동기화 메커니즘이 필요합니다.

 

 

기능 싱글 스레드 멀티 스레드
스레드 수 1 다중
동시 작업성 가능 여부 아니요
효율성 간단한 프로그램에서 효율적 복잡한 프로그램에서 더 효율적
복잡성 덜 복잡함 더 복잡함
동기화 필요 없음 경쟁 조건을 피하기 위해 필요

 

 

2. 결론
싱글 스레딩과 멀티 스레딩 중 어떤 것을 선택할지는 작업의 특성, 성능 요구 사항, 병렬 처리 활용 능력에 따라 달라집니다. 단일 스레딩은 동시 실행이 필요하지 않은 간단한 작업이나 시나리오에 적합하며, 멀티 스레딩은 병렬 처리가 가능하고 더 나은 성능이나 응답성이 필요한 작업에 유용합니다.

 

 

 

반응형