Blog Content

    티스토리 뷰

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

    반응형

    스레드(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
    다운로드

    반응형

    Comments