C#

91.C# - 스레드(Thread) 와 프로세스(Process)

Godffs 2009. 9. 2. 12:59
반응형

스레드(Thread) : 프로세스 안에서 실행하는 단위 프로그램(메서드),
                       멀티 스래딩 환경(랜덤/가중치에 따라 운영체제에 따라 실행)
                       스레드 영역에 스레드 올림. 실행순서 중요하지 않을 때 사용


프로세스(Process) : 하나의 프로그램 단위(프로젝트)로 실행중인
                           응용프로그램을 의미


Program.cs
static void Main(string[] args)
{
        //Win(); Sql(); Ide(); // 단일 스레드 : 순차적으로 실행

        // 멀티 스래딩. ThreadStart 대리자
        ThreadStart ts1 = new ThreadStart(Win);
        ThreadStart ts2 = new ThreadStart(Sql);

        Thread t1 = new Thread(ts1);
        Thread t2 = new Thread(ts2);
        Thread t3 = new Thread(new ThreadStart(Ide));

        t3.Priority = ThreadPriority.Highest; //우선순위 높게. 확률이 높아짐

        t1.Start(); //실행은 운영체제에 의해서 마음대로 실행
        t2.Start(); //실행 할 때마다 결과 다르게 나올 수 있음
        t3.Start();

        // 프로세스
        Process.Start("IExplore.exe"); //익스플로어 실행
        Process.Start("Notepad.exe"); //메모장 실행
}

private static void Ide()
{
        DelayTime();
        Console.WriteLine("[3] IDE : Visual Studio");
}

private static void Sql()
{
        Thread.Sleep(5000); //3초 딜레이. 테스트 목적
        Console.WriteLine("[2] DBMS : SQL Server");
}

private static void Win()
{
        DelayTime();
        Console.WriteLine("[1] OS : Windows Server");
}

private static void DelayTime()
{
        for (int i = 0; i < 100000000; i++) //시간지연 메서드
        {
        }
}

결과화면

[그림 90-1]

시간차로 메모장과 익스플로러 자동 실행됩니다.

91.zip
다운로드

반응형