데커 알고리즘 4번째 문제로 이 알고리즘에 문제는 일정치 않은 딜레이 함수로 CPU가 쉬게 되고 일정치는 않지만 CPU가 쉴수 있는 문제가 생긴다.
볼래요
Trackback url :: http://hahakbs.dothost.co.kr/trackback/25

데커 알고리즘 4번째 문제로 이 알고리즘에 문제는 일정치 않은 딜레이 함수로 CPU가 쉬게 되고 일정치는 않지만 CPU가 쉴수 있는 문제가 생긴다.
볼래요
using System;
using System.Threading;
class Program
{
public bool p1;
public bool p2;
public DateTime dt;
public Random rd1;
public Random rd2;
public Program()
{
dt = DateTime.Now;
rd1 = new Random(dt.Millisecond);
rd2 = new Random(dt.Millisecond);
}
public void Processor1()
{
while(true)
{
p1 = true;
while(p2)
{
Console.WriteLine("프로세스 1");
p1 = false;
Thread.Sleep(rd1.Next(0,10));
p1 = true;
}
lock(this)
{
p1 = false;
}
}
}
public void Processor2()
{
while(true)
{
p2 = true;
while(p1)
{
Console.WriteLine("프로세스 2");
p2 = false;
Thread.Sleep(rd2.Next(0,10));
p2 = true;
}
lock(this)
{
p2 = false;
}
}
}
public static void Main()
{
Console.WriteLine("테스트");
Program pr = new Program();
pr.p1 = false;
pr.p2 = false;
Thread th1= new Thread ( new ThreadStart(pr.Processor1));
Thread th2= new Thread ( new ThreadStart(pr.Processor2));
th1.Start();
th2.Start();
}
}
// 딜레이 타임이 일정치 않아 프로그램이 멈출수 있다.
// 일정치 않게


| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
댓글을 달아 주세요