C#/C# 서버

[C#/서버] 쓰레드 (Thread)

진서박 2023. 8. 16. 14:55
반응형

인프런 - Rookies님의 강의

https://www.inflearn.com/course/%EC%9C%A0%EB%8B%88%ED%8B%B0-mmorpg-%EA%B0%9C%EB%B0%9C-part4

 

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버 - 인프런 | 강의

네트워크/멀티쓰레드/운영체제 등 핵심 전공 지식을 공부하고 게임 서버를 바닥부터 만들어보면서 MMORPG 기술을 학습하는 강의입니다., MMORPG 개발에 필요한 모든 기술, C# + Unity로 Step By Step! 🕹

www.inflearn.com

 

쓰레드란?

- 프로세스 내에서 실제로 작업을 수행하는 주체.

- 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다.

- 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)한다.

- 식당의 종업원이라고 생각하면 됨

 

Thread의 생성과 사용법

 

기본적인 생성과 시작

Thread t = new Thread("처리할 함수");
t.Start();

 

Background, Foreground 쓰레드

  t.isBackground
- bool 타입
- C#에서는 Thread를 생성하면 foreground Thread로 만들어지게 됨

  if(isBackground == true) -> (background Thread)
- Main함수가 종료되면 종료
  if(isBackground == false) -> (foreground Thread)
- Main함수가 종료되어도 계속 실행

 

대기

t.Join();
- Main함수에서 Join() 뒤의 일들을 Thread에 할당된 일이 끝날 때 까지 보류

ex)
t.IsBackground = true;
t.Start();
Console.WriteLine("Waiting for Thread");
t.Join();
Console.WriteLine("Main Complete!");

-> 즉, Waiting for Thread -> Thread 처리 -> Thread 종료 -> Main Complete! -> Main 종료
반응형

'C# > C# 서버' 카테고리의 다른 글

[C#/서버] AutoResetEvent / ManualResetEvent  (0) 2023.08.20
[C#/서버] SpinLock  (0) 2023.08.18
[C#/서버] 메모리 배리어  (0) 2023.08.16
[C#/서버] 캐시 이론  (0) 2023.08.16
[C#/서버] 쓰레드 풀 (ThreadPool)  (0) 2023.08.16