Code/C#

[C#] Thread 샘플 코드 2

Hide Code 2007. 12. 7. 19:49
이것은 앞의 예제를 약간 변형한 것이다.

2개의 Thread가 하나의 공통된 변수를 다루고 있다.

2개의 Thread가 하나의 int 변수에 발생한 난수를 더하고 있다.



using System;
using System.Threading;

namespace SampleThread
{
   class Program
   {
       static void Main(string[] args)
       {
           myRandom = new Random();
           s = 0;

           Thread t1 = new Thread(new ThreadStart(method1));
           t1.Start();

           Thread t2 = new Thread(new ThreadStart(method2));
           t2.Start();
       }

       private static void method1()
       {
           for (int i = 0; i < 5; i++)
           {
               r = myRandom.Next(6) * 1000;
               s += r;
               Console.WriteLine("[{0,-10}] : {1}", r, s);
               Thread.Sleep(r);
           }
       }

       private static void method2()
       {
           for (int i = 0; i < 5; i++)
           {
               r = myRandom.Next(6) * 1000;
               s += r;
               Console.WriteLine("[{0,10}] : {1}", r, s);
               Thread.Sleep(r);
           }
       }

       private static Random myRandom;
       private static int r;
       private static int s;
   }
}