스레드(Thread)란 무엇인가?
스레드는 경량 프로세스(Lightweight Process)라고도 불리며, 프로그램 내에서 실제 작업이 실행되는 경로를 의미합니다. 하나의 프로세스 안에서 여러 개의 스레드가 동시에 실행되면서 각각의 작업을 수행할 수 있습니다.
C#에서는 Thread 클래스를 기반으로 스레드를 생성합니다. 스레드 객체를 만든 뒤 Start() 메서드를 호출하면 자식 스레드(child thread)의 실행이 시작됩니다.
스레드를 사용하는 이유
스레드의 대표적인 활용 사례는 현대 운영체제에서 구현하는 동시성 프로그래밍(Concurrent Programming)입니다. 스레드를 적절히 활용하면 CPU 사이클 낭비를 줄일 수 있고, 애플리케이션의 전반적인 처리 효율과 응답성을 크게 향상시킬 수 있습니다.
C# 스레드 생성 예제
다음 예제는 C#에서 스레드를 생성하고 실행하는 기본적인 과정을 보여줍니다.
using System;
using System.Threading;
namespace Demo {
class Program {
public static void ThreadFunc() {
Console.WriteLine("Child thread starts");
}
static void Main(string[] args) {
ThreadStart childref = new ThreadStart(ThreadFunc);
Console.WriteLine("In Main: Creating the Child thread");
Thread childThread = new Thread(childref);
childThread.Start();
Console.ReadKey();
}
}
}
코드 설명
- ThreadStart 델리게이트: 스레드가 실행할 메서드(
ThreadFunc)를 지정합니다. - Thread 객체 생성:
new Thread(childref)를 통해 자식 스레드 인스턴스를 만듭니다. - Start() 호출: 자식 스레드의 실행을 시작하며, 지정된 메서드가 별도의 실행 경로에서 동작합니다.
실행 결과
In Main: Creating the Child thread
Child thread starts
실행 결과를 보면 메인 스레드에서 자식 스레드를 생성한 후, 자식 스레드가 별도의 실행 경로에서 ThreadFunc 메서드를 정상적으로 수행한 것을 확인할 수 있습니다.