프로그래밍/C#

[C#] Thread 2개 사용하여 변수 값 공유 테스트

Victory_HA 2022. 3. 22. 21:55

  • Thread 2개를 사용하게 될 때, 각 Thread 별 가지고 있는 변수가 있다.
  • 아래 코드는 Thread끼리 변수의 값을 공유하는지 확인하는 테스트이다.
using System;
using System.Threading;

namespace Sample_TEST
{
    class ThreadTestProgram
    {
        public static void Main(string[] args)
        {
            Thread thread = new Thread(() => Run(0));

            // 1번째 Thread 실행
            thread.Start();

            // 5초 지연 시킨다.
            Thread.Sleep(5000);

            // 2번째 Thread 실행
            Run(1);
        }

        public static void Run(int idx)
        {
            // Thread 별 Run() 을 시작한 시간. 
            DateTime beginTime = DateTime.Now;
            DateTime EndTime;
            Console.WriteLine(string.Format("Run {0} Start", idx));
            for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(1000);
                EndTime = DateTime.Now;
                Console.WriteLine($"{Thread.CurrentThread.ManagedThreadId} _ begin : {beginTime} , End : {EndTime}", string.Format("Run {0} :: {1}", idx, i));
            }
            Console.WriteLine(string.Format("Run {0} End", idx));
        }
    }
}

출력 결과