public void Consume() { //for (int i = 1; i <= 11; i++) while (true) { lock (common_lock) { //Console.Write("Consumer1 Chnace "); //Console.Write(" f1=" + cnum.Flag1 + " f2=" + cnum.flag2 + " seq=" + cnum.seq + " p =" + cnum.p); if (cnum.p == 3 || cnum.p == 4 || cnum.p == 1 || cnum.p == 5 || (cnum.Flag1 && !cnum.flag2 && !cnum.flag3)) { // Console.Write(" Consumer1 wating "); Monitor.PulseAll(common_lock); Monitor.Wait(common_lock); } else { Console.Write("\t " + (cnum.getNum() % 2 == 0)); cnum.Flag1 = true; cnum.flag2 = false; cnum.p = 3; } } } }
public void Generate() { int count = 1; //for (int i = 1; i <= 11; i++) while (true) { lock (common_lock) { // Console.Write("Produce Chnace "); //Console.Write(" f1=" + cnum.Flag1 + " f2=" + cnum.flag2 + " seq=" + cnum.seq + " p =" + cnum.p); if (cnum.p == 2 || cnum.p == 3 || cnum.p == 4 || cnum.p == 5 || (!cnum.Flag1 && !cnum.flag2 && !cnum.flag3)) { // Console.Write(" producer wating "); Monitor.PulseAll(common_lock); Monitor.Wait(common_lock); } else { cnum.setNum(count); if (count == 11) { Console.ReadKey(); Environment.Exit(0); } Console.Write("\n " + cnum.getNum()); count = count + 1; cnum.Flag1 = false; cnum.p = 2; } } } }
public void Consume() { // for (int i = 1; i <= 11; i++) while (true) { lock (common_lock) { //Console.Write("Consumer3 Chnace "); //Console.Write(" f1=" + cnum.Flag1 + " f2=" + cnum.flag2 + " seq=" + cnum.seq + " p =" + cnum.p); if (cnum.p == 1 || cnum.p == 2 || cnum.p == 3 || cnum.p == 5 || (!cnum.Flag1 && !cnum.flag2 && cnum.flag3)) { // Console.Write(" Consumer2 wating "); Monitor.PulseAll(common_lock); Monitor.Wait(common_lock); } else { //Console.Write("\t consume3 " + cnum.getNum()); int n = cnum.getNum(); bool prime = true; for (int i = 2; i <= n / 2; i++) { if (n % i == 0) { prime = false; break; } } if (n == 1) { prime = false; } Console.Write("\t " + prime); cnum.Flag1 = false; cnum.flag2 = true; cnum.p = 5; } } } }
public void Consume() { // for (int i = 1; i <= 11; i++) while (true) { lock (common_lock) { //Console.Write("Consumer4 Chnace "); //Console.Write(" f1=" + cnum.Flag1 + " f2=" + cnum.flag2 + " seq=" + cnum.seq + " p =" + cnum.p); if (cnum.p == 1 || cnum.p == 2 || cnum.p == 3 || cnum.p == 4 || (cnum.Flag1 && !cnum.flag2 && cnum.flag3)) { // Console.Write(" Consumer4 wating "); Monitor.PulseAll(common_lock); Monitor.Wait(common_lock); } else { int a = 0, b = 1, c, n = cnum.getNum(); bool fab = false; for (int i = 1; i <= n; i++) { c = a + b; a = b; b = c; if (c == n) { fab = true; } } Console.Write("\t " + fab); cnum.Flag1 = true; cnum.flag2 = true; cnum.flag3 = true; cnum.p = 1; } } } }