Code/C#
[C#] Thread 샘플 코드 2
Hide Code
2007. 12. 7. 19:49
이것은 앞의 예제를 약간 변형한 것이다.
2개의 Thread가 하나의 공통된 변수를 다루고 있다.
2개의 Thread가 하나의 int 변수에 발생한 난수를 더하고 있다.
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;
}
}
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;
}
}