C# 멀티 쓰레드(우선순위, ThreadPriority)

홈 > 공유팁! > 프로그램 관련
프로그램 관련

C# 멀티 쓰레드(우선순위, ThreadPriority)

꽁스짱 0 891

C# 멀티 쓰레드(우선순위, ThreadPriority)

 

쓰레드가 여러 개 있다면 한 쓰레드가 동작하고 나서 어떤 쓰레드가 동작할까? 아마도 높은 우선 순위를 가지고 있는 쓰레드가 수행 될 것이다. 각각의 쓰레드는 CPU 사용 권한에 대한 우선 순위가 있는데 우선 순위가 높을수록 CPU사용 권한을 먼저 할당받는다.

한 쓰레드에 대해 우선순위를 높여 주면 CPU 사용 권한을 우선적으로 갖는 것이다. Thread의 우선 순위와 관련된 프로퍼티가 있는데 열거형 값인 Highest, AboveNormal, Normal, BelowNormal, Lowest중 한 값이다. 아래의 예제를 살펴 보자.

using System;

using System.Threading;

public class ThreadTest3

{

public void FirstWork()

{

for(int i=0; i < 10; i++)

{

for(int j=0; j < 10; j++)

{

Thread.Sleep(100);

Console.Write(",");

}

Console.WriteLine("F{0}", i);

}

}

public void SecondWork()

{

for(int i=0; i < 10; i++)

{

for(int j=0; j < 10; j++)

{

Thread.Sleep(100); Console.Write(",");

}

Console.WriteLine("S{0}", i);

}

}

}

class TestMain

{

[MTAThread]

public static void Main()

{

ThreadTest3 t = new ThreadTest3();

Thread first = new Thread(new ThreadStart(t.FirstWork));

Thread second = new Thread(new ThreadStart(t.SecondWork));

first.Priority = ThreadPriority.Lowest;

second.Priority = ThreadPriority.Highest;

first.Start(); second.Start();

}

}

0 Comments
제목