본문 바로가기
지식 정리

스레드와 동시성

by Hyeongjun_Ham 2024. 1. 17.

스레드와 동시성

스레드(Thread)와 동시성(Concurrency)은 프로그래밍에서 중요한 개념이다.

멀티스레드 환경에서 프로그램이 동시에 여러 작업을 수행할 수 있도록 하는 기술이다.

 

먼저 스레드부터 알아보자

 


스레드(Thread)

  • 스레드란?
    • 스레드는 프로세스 내에서 실행되는 작은 실행 단위로, 프로세스 내의 주소 공간과 시스템 자원을 공유한다.
    • 하나의 프로세스에는 여러 개의 스레드가 있을 수 있다.
  • 프로세스와 스레드의 차이
    • 프로세스는 독립적인 실행 단위로, 각 프로세스는 자신만의 주소 공간을 가진다.
    • 스레드는 프로세스 내에서 실행되는 각각의 흐름으로, 프로세스의 자원을 공유한다.
  • 스레드의 장점
    • 자원 공유 : 스레드 간에 자원을 쉽게 공유할 수 있다.
    • 응답성 향상 : 여러 작업을 동시에 처리하여 응답성을 향상시킬 수 있다.

동시성과 병렬성은 겉으로 보기에 동시에 여러 작업이 일어나는 것처럼 보이지만 차이가 있다.

 

동시성에 대해 알아보자

동시성(Concurrency)

  • 동시성이란?
    • 동시성은 여러 작업이 동시에 진행되는 것을 의미한다.
    • 멀티스레드, 멀티프로세스, 이벤트 기반 프로그래밍 등의 기술을 사용해서 동시성을 구현할 수 있다.
  • 동시성과 병렬성 차이
    • 동시성은 여러 작업이 빠르게 번갈아 가며 실행되는 것을 의미한다.
    • 병렬성은 여러 작업이 동시에 실행되는 것을 의미한다.
  • 멀티스레딩과 동시성
    • 멀티스레딩은 동시성을 구현하는 방법 중 하나이다.
    • 여러 스레드가 동시에 실행되어 작업을 처리하므로, 동시성을 실현할 수 있다.
  • 동시성의 장점
    • 응답성 향상 : 여러 작업을 동시에 처리해서 응답성이 향상된다.
    • 자원 효율성 : 여러 작업이 동시에 실행되면서 시스템 자원을 효율적으로 활용할 수 있다.
  • 주의사항
    • 공유 자원에 대한 동기화
      • 여러 스레드가 공유 자원에 접근할 때 동기화가 필요하다.
      • 동기화를 통해 상호배제를 구현하여 데이터 일관성을 보장할 수 있다.
    • 경쟁 조건과 데드락
      • 경쟁 조건(Race Condition)과 데드락(Deadlock)은 멀티스레딩 환경에서 주의해야 할 문제이다.
      • 경쟁 조건은 여러 스레드가 동시에 공유 자원을 수정할 때 발생할 수 있는 문제이고, 데드락은 스레드 간의 무한 대기 상태이다.

 

Reference

https://beststar-1.tistory.com/24

 

스레드(Thread) - 멀티스레드의 동시성(Concurrency)과 병렬성(Parallelism)

멀티스레드의 동시성(Concurrency)과 병렬성(Parallelism) 멀티스레드는 동시성 방식이나 병렬성 방식으로 수행된다. 동시성(Concurrency) 싱글 코어에서 멀티스레드를 동작시키기 위한 방식으로, 멀티 태

beststar-1.tistory.com

 

'지식 정리' 카테고리의 다른 글

운영체제에서의 입출력(I/O) 관리  (0) 2024.01.22
프로세스 간 통신  (0) 2024.01.19
프로세스란?  (0) 2024.01.15
OS의 일반적인 작동 원리  (0) 2024.01.12
호스팅이란?  (0) 2024.01.11