스레드는 프로그램의 실행 경로로 정의됩니다. 각 스레드는 고유한 제어 흐름을 정의합니다. 애플리케이션에 복잡하고 시간이 많이 소요되는 작업이 포함된 경우 각 스레드가 특정 작업을 수행하도록 서로 다른 실행 경로 또는 스레드를 설정하는 것이 종종 도움이 됩니다.
스레드의 수명 주기는 System.Threading.Thread 클래스의 개체가 생성될 때 시작되어 스레드가 종료되거나 실행이 완료될 때 종료됩니다.
다음은 스레드 수명 주기의 다양한 상태입니다 -
-
시작되지 않은 상태 - 쓰레드의 인스턴스가 생성되었으나 Start 메소드가 호출되지 않은 상황입니다.
-
준비 상태 - 쓰레드가 실행 준비가 되어 CPU 주기를 기다리는 상황입니다.
-
실행할 수 없는 상태 - 스레드가 실행되지 않는 경우
- 수면 방법이 호출되었습니다.
- 대기 메서드가 호출되었습니다.
- I/O 작업에 의해 차단됨
-
죽은 상태 - 쓰레드의 실행이 완료되거나 중단된 상황입니다.
다음은 스레드를 생성하는 방법을 보여주는 예입니다 -
예시
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(); } } }
출력
In Main: Creating the Child thread Child thread starts