728x90

오늘은 C#으로 Thread를 사용하는 방법에 대해 정리해보려고 한다.

 

Thread 함수 사용

using System.Threading을 선언해야한다.

Thread 함수를 이용하여 멀티쓰레드를 이용 할 수 있다.

우선 쓰레드에서 수행할 함수를 작성해야한다.

위에선 MainThread 함수 부분이다.

 

쓰레드를 사용하기 위해서 Thread t = new Thread(수행할 동작을 포함하는 함수 = MainThread)로 Thread 객체를 생성한다.

 

그 뒤 t.Start()를 통해 해당 쓰레드의 동작을 시작하면 된다.

 

위에 부수적인 기능들이 있는데 그부분을 설명하자면

1.t.Name

t.Name 을 통해 Thread의 이름을 설정 할 수 있다. 

설정한 이름은 아래와 같이 확인 할 수 있다.

2. t.isBackground

이 부분은 쓰레드를 background로 실행 할 것인지에 대한 부분을 설정하는 것이다.

기본적으로 false로 설정되어있다.

만약 t.isBackground = true로 설정하면 메인함수가 종료되는 순간 Thread의 동작도 종료된다.

 

3. t.Join()

t.Join() 함수를 사용하면 Thread의 동작이 모두 수행될때까지 메인 함수를 대기시킨다.

메인함수가 먼저 종료되는것을 방지하기 위해 사용된다.

 

Thread 함수를 사용한 방법은 여기까지 알아보면 될 것 같다.

Thread 함수를 사용하여 멀티쓰레딩 프로그래밍을 했을때 문제점은 Thread를 사용하여 객체를 생성하다보면 Thread 생성 갯수의 제한이 없어서 계속 생성 될 수가 있다는 점이다.

하지만, Thread의 개수가 Core보다 커진다면 Context Switching 비용이 더 크기 때문에 효율적이지 못하다.

ThreadPool을 이용하면 Thread 생성 제한을 설정 할 수 있기에 이 문제를 해결할 수 있다

 

다음 포스팅에서는 ThreadPool을 사용하는 방법을 알아보자.

 

복사했습니다!