C#에서 멀티스레딩을 다룰 때 가장 기본이 되는 개념이 바로 메인 스레드(Main Thread)와 자식 스레드(Child Thread)입니다. 이 두 가지의 차이점과 생성 방법을 예제 코드와 함께 살펴보겠습니다.
메인 스레드(Main Thread)란?
메인 스레드는 프로세스 내에서 가장 먼저 실행되는 스레드를 의미합니다. C# 프로그램이 시작되면 별도의 설정 없이도 메인 스레드가 자동으로 생성되며, 프로그램의 진입점인 Main() 메서드가 바로 이 메인 스레드에서 실행됩니다.
자식 스레드(Child Thread)란?
자식 스레드는 Thread 클래스를 사용하여 생성한 스레드로, 메인 스레드에 종속된 형태로 동작합니다. 개발자는 자식 스레드를 활용해 여러 작업을 동시에 처리함으로써 프로그램의 성능과 응답성을 높일 수 있습니다.
메인 스레드 생성 및 확인 예제
다음 예제는 현재 실행 중인 스레드 정보를 가져와 이름을 지정하고 출력하는 방법을 보여줍니다.
using System;
using System.Threading;
namespace Demo {
class Program {
static void Main(string[] args) {
// 현재 실행 중인 스레드 가져오기
Thread th = Thread.CurrentThread;
th.Name = "MainThread";
Console.WriteLine("This is {0}", th.Name);
Console.ReadKey();
}
}
}코드 설명
Thread.CurrentThread: 현재 실행 중인 스레드 객체를 반환하는 정적 속성입니다.th.Name = "MainThread": 스레드에 이름을 부여하여 디버깅과 로그 분석 시 식별이 쉽도록 합니다.Console.WriteLine(): 스레드 이름을 콘솔에 출력합니다.
실행 결과
This is MainThread
프로그램을 실행하면 위와 같이 메인 스레드의 이름이 정상적으로 출력되는 것을 확인할 수 있습니다.
정리
메인 스레드는 프로그램 시작 시 자동으로 생성되는 첫 번째 스레드이며, Thread 클래스로 만든 추가 스레드들은 모두 자식 스레드가 됩니다. 멀티스레드 프로그래밍의 기초를 이해하는 데 이 두 개념은 반드시 숙지해야 할 핵심 요소입니다.