vb.net 쓰레드 예제

0 0

멀티스레딩은 프로그램의 효율성을 100% 높일 수 있는 기술입니다. 모든 몸은 자신의 응용 프로그램에 멀티 스레딩을 적용하려고합니다. 그러나 초보자에게는 멀티 스레딩을 올바르게 적용하는 것이 조금 어렵습니다. 나는 내 응용 프로그램에서 그것을 사용하려고 할 때, 같은 문제가 있었다. 그래서 나는 초보자가 쉽게 자신의 응용 프로그램에서 멀티 스레딩을 적용 할 수 있습니다,이 기사를 작성하고 있습니다. 나는 그것을 가능한 한 간단하게 만들기 위해 노력하고 있습니다. 응용 프로그램 스레드의 동작을 보다 세한 제어가 필요한 경우 스레드를 직접 관리할 수 있습니다. 그러나 .NET Framework 4부터 시작하여 System.Threading.Task.Task.Task 클래스, 병렬 LINQ(PLINQ), 새로운 동시 컬렉션 클래스로 다중 스레드 프로그래밍이 크게 간소화됩니다. System.Collections.Concurrent 네임스페이스 및 스레드가 아닌 작업 개념을 기반으로 하는 새 프로그래밍 모델입니다. 자세한 내용은 병렬 프로그래밍 및 작업 병렬 라이브러리(TPL)를 참조하십시오.

다중 스레드 코드에는 복잡한 스레드 조정이 필요한 경우가 많습니다. 미묘하고 찾기 어려운 버그는 다른 스레드가 동일한 데이터를 공유해야 하는 경우가 많으며 다른 스레드가 예상하지 못하는 경우 한 스레드에서 데이터를 변경할 수 있기 때문에 일반적입니다. 이 문제에 대한 일반적인 용어는 „인종 조건“입니다. 즉, 두 스레드는 동일한 데이터를 업데이트하기 위해 „경주“에 들어갈 수 있으며 결과는 „승리“하는 스레드에 따라 다를 수 있습니다. 간단한 예로 루프를 코딩한다고 가정합니다: 멀티스레딩에서 사용되는 기본 네임스페이스는 System.Threading 네임스페이스이며 Thread 클래스는 새 스레드를 만들고 시작및 중지합니다. 아래 예제에서는 TestMultiThreading이 대리자임을 알 수 있습니다. 즉, Thread 메서드가 호출할 수 있는 메서드의 이름을 사용해야 합니다. Permute sub를 호출하는 방법에는 두 가지가 있습니다(둘 다 위의 코드에서 주석이 달임).

하나는 스레드를 시작하고 다른 하나는 스레드를 직접 호출합니다. 직접 호출하는 경우 Thread.Sleep 메서드를 사용하여 지정된 시간 동안 현재 스레드를 일시 중지합니다. Thread.Interrupt 메서드를 호출하여 차단된 스레드를 중단할 수 있습니다. 자세한 내용은 스레드 일시 중지 및 중단을 참조하십시오. System.Threading.Thread 클래스의 새 인스턴스를 만들고 생성자에 새 스레드에서 실행하려는 메서드의 이름을 제공하여 새 스레드를 만듭니다. 생성된 스레드를 시작하려면 Thread.Start 메서드를 호출합니다.