C# Language스레딩


비고

스레드 는 다른 부분과 독립적으로 실행할 수있는 프로그램의 일부입니다. 다른 스레드와 동시에 작업을 수행 할 수 있습니다. 멀티 스레딩 은 프로그램이 동시 처리를 수행하여 한 번에 둘 이상의 작업을 수행 할 수있게 해주는 기능입니다.

예를 들어 스레딩을 사용하여 백그라운드에서 타이머 또는 카운터를 업데이트하는 동시에 포 그라운드에서 다른 작업을 수행 할 수 있습니다.

멀티 스레드 응용 프로그램은 사용자 입력에 더 잘 반응하며 작업 부하가 증가 할 때 개발자가 스레드를 추가 할 수 있으므로 쉽게 확장 할 수 있습니다.

기본적으로 C # 프로그램에는 스레드 (주 프로그램 스레드)가 하나 있습니다. 그러나 보조 스레드를 만들고 기본 스레드와 병렬로 코드를 실행하는 데 사용할 수 있습니다. 이러한 스레드를 작업자 스레드라고합니다.

스레드의 작업을 제어하기 위해 CLR은 스레드 스케줄러라는 운영 체제에 함수를 위임합니다. 스레드 스케줄러는 모든 스레드가 적절한 실행 시간을 할당 받도록 보장합니다. 또한 차단되거나 잠긴 스레드가 CPU 시간을 많이 소비하지 않는지 확인합니다.

.NET Framework System.Threading 네임 스페이스를 사용하면 스레드를 더 쉽게 사용할 수 있습니다. System.Threading은 많은 클래스와 인터페이스를 제공하여 멀티 스레딩을 가능하게합니다. 특정 스레드에 대한 유형 및 클래스를 제공하는 것 외에도 스레드 컬렉션, 타이머 클래스 등을 보유하는 유형을 정의합니다. 또한 공유 데이터에 동기화 된 액세스를 허용하여 지원을 제공합니다.

ThreadSystem.Threading 네임 스페이스의 기본 클래스입니다. 다른 클래스에는 AutoResetEvent , Interlocked , Monitor , MutexThreadPool 됩니다.

System.Threading 네임 스페이스에있는 일부 대리자는 ThreadStart , TimerCallbackWaitCallback 합니다.

System.Threading 네임 스페이스의 열거 형에는 ThreadPriority , ThreadStateEventResetMode 됩니다.

.NET Framework 4 및 이후 버전에서는 System.Threading.Tasks.ParallelSystem.Threading.Tasks.Task 클래스, Parallel LINQ (PLINQ), System.Collections.Concurrent 새로운 동시 수집 클래스를 통해보다 쉽고 간단하게 다중 스레드 프로그래밍이 가능합니다. System.Collections.Concurrent 네임 스페이스 및 새로운 작업 기반 프로그래밍 모델.

스레딩 관련 예