[게임서버] 스레드(Thread)란?

2022. 5. 23. 21:58·공부/게임 서버
728x90

스레드란 프로그램을 제어하는 단위를 말한다.

 

스레드(Thread) -> 프로세스(Process) -> 프로그램(Program). 예전에는 하나의 프로세스로 하나의 프로그램을 실행하는 데에 문제가 없었지만 프로그램이 복잡해지면서 더 작은 단위의 스레드가 생겼다. 

하나의 프로그램에 하나의 스레드만 있는 것은 싱글 스레드(Single Thread),

둘 이상의 스레드가 있는 것을 멀티 스레드(Multi Thread)라 한다.

 

 

 

싱글 스레드(Single Thread) 장점

  • 멀티 스레드에서 일어나는 문제인 context switching이 없음. 
  • context switching으로 인해 단순 작업에서 불필요한 시간이 늘어나지 않음.
  • 여러개의 스레드를 사용하면 함께 사용하는 자원에 대한 통제를 제어해야 하나, 싱글 스레드에서는 불필요함.

 

싱글 스레드(Single Thread) 단점

  • 모든 작업을 순차적으로 실행함. 1, 2, 3이라는 작업이 순서대로 있을 경우 3을 실행하기 위해서 반드시 1과 2가 실행되기를 기다려야함.
  • 여러개의 CPU를 활용할 수 없음.

 

 

멀티 스레드(Multi Thread) 장점

  • 새로운 작업을 위해 프로세스를 만드는 것보다 스레드를 만드는 것이 훨씬 경제적임.
  • 여러 작업을 동시에 실행할 수 있음.
  • 다른 스레드와 정보, 메모리 등의 자원을 공유하여 효율성이 오름.

 

멀티 스레드(Multi Thread) 단점

  • context switching으로 인한 문제가 생김.
  • 단순 계산은 싱글 스레드보다 시간이 오래걸림.

 

728x90

'공부 > 게임 서버' 카테고리의 다른 글

[게임서버] 스핀락(Spinlock)이란?  (0) 2022.05.25
[게임서버] 상호배제 - Monitor.Enter, Monitor.Exit  (0) 2022.05.24
[게임서버] Interlocked란?  (0) 2022.05.24
[게임서버] Temporal locality, Spatial locality  (0) 2022.05.23
[게임서버] 메모리 배리어(Memory Barrier)란?  (0) 2022.05.23
'공부/게임 서버' 카테고리의 다른 글
  • [게임서버] 상호배제 - Monitor.Enter, Monitor.Exit
  • [게임서버] Interlocked란?
  • [게임서버] Temporal locality, Spatial locality
  • [게임서버] 메모리 배리어(Memory Barrier)란?
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (238)
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    유니티
    Entityfamework
    coding
    unity
    HTML
    EFCore
    java
    디자인패턴
    네트워크
    백준
    라즈베리파이
    게임서버
    C언어
    tcp
    C
    자바
    Python
    EntityFramework
    코딩
    C#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[게임서버] 스레드(Thread)란?
상단으로

티스토리툴바