Advertisement
Guest User

Untitled

a guest
May 25th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.03 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using System.Diagnostics;
  8.  
  9. namespace Zadatak2_Pokloni_
  10. {
  11. class Program
  12. {
  13. static readonly object locker = new object();
  14. static readonly object locker1 = new object();
  15. static int red1 = 0;
  16. static int red2 = 0;
  17. static int red3 = 0;
  18. static int red4 = 0;
  19. static int ukupanBrojArtikla = 0;
  20. static int k = 1;
  21. static int brojKupaca = 0;
  22.  
  23.  
  24. static void KasaBrza1(int brojac)
  25. {
  26. Console.WriteLine("Stao je na brzu kasu1");
  27. Dodaj(brojac);
  28. Thread.Sleep((100 * brojac));
  29. Smanjivac(brojac);
  30.  
  31. }
  32. static void KasaBrza2(int brojac)
  33. {
  34.  
  35. Console.WriteLine("Stao je na brzu kasu 2");
  36.  
  37. Dodaj(brojac);
  38. Thread.Sleep((100 * brojac));
  39. Smanjivac(brojac);
  40. }
  41. static void KasaObicna1(int brojac)
  42. {
  43. Console.WriteLine("Stao je na obicnu kasu1");
  44. Dodaj(brojac);
  45. Thread.Sleep((100 * brojac));
  46. Smanjivac(brojac);
  47. }
  48. static void Smanjivac(int red)
  49. {
  50. lock(locker)
  51. {
  52. if (red == 1)
  53. {
  54. red1--;
  55. }
  56. if (red == 2)
  57. {
  58.  
  59. red2--;
  60. }
  61. if (red == 3)
  62. {
  63.  
  64. red3--;
  65. }
  66. if (red == 4)
  67. {
  68.  
  69. red4--;
  70. }
  71. }
  72. }
  73. static void Dodaj(int red)
  74. {
  75. lock (locker1)
  76. {
  77. if (red == 1)
  78. {
  79. red1++;
  80. }
  81. if (red == 2)
  82. {
  83. red2++;
  84. }
  85. if (red == 3)
  86. {
  87. red3++;
  88. }
  89. if (red == 4)
  90. {
  91. red4++;
  92. }
  93. }
  94. }
  95. static void KasaObicna2(int brojac)
  96. {
  97. Console.WriteLine("Stao je na obicnu kasu 2");
  98. Dodaj(brojac);
  99. Thread.Sleep((100 * brojac));
  100. Smanjivac(brojac);
  101. }
  102. static int minimal()
  103. {
  104. int[] niz = new int[4];niz[0] = red1;niz[1] = red2;niz[2] = red3;niz[3] = red4;
  105. int min = niz[0];
  106. for(int i=0;i<4;i++)
  107. {
  108. if (niz[i] < min)
  109. {
  110. min = niz[i];
  111. }
  112. }
  113. if (min == niz[0])
  114. return 1;
  115. else if (min == niz[1])
  116. return 2;
  117. else if (min == niz[2])
  118. return 3;
  119. else if (min == niz[3])
  120. return 4;
  121. else return 50;
  122. }
  123. static void stoperica()
  124. {
  125. Stopwatch stoperica = new Stopwatch();
  126. stoperica.Start();
  127. Thread.Sleep(20000);
  128. stoperica.Stop();
  129. k++;
  130. }
  131. static void Work()
  132. {
  133.  
  134. Random r = new Random();
  135. int brojac = (r.Next(1,10));
  136. int brojNajmanjihUredu = minimal();
  137. ukupanBrojArtikla += brojac;
  138.  
  139. if (brojac <= 5 && brojNajmanjihUredu == 1)
  140. {
  141. Console.WriteLine(brojac);
  142. KasaBrza1(brojac);
  143. }
  144. if (brojac <= 5 && brojNajmanjihUredu == 2)
  145. {
  146. Console.WriteLine(brojac);
  147. KasaBrza2(brojac);
  148. }
  149. if (brojac > 5 && brojNajmanjihUredu == 3)
  150. {
  151. Console.WriteLine(brojac);
  152. KasaObicna1(brojac);
  153. }
  154. if (brojac > 5 && brojNajmanjihUredu == 4)
  155. {
  156. Console.WriteLine(brojac);
  157. KasaObicna2(brojac);
  158. }
  159. if(ukupanBrojArtikla>=400)
  160. {
  161. k++;
  162. }
  163.  
  164. }
  165. static void Main(string[] args)
  166. {
  167.  
  168. Thread Stoperica1 = new Thread(() => stoperica());
  169. Stoperica1.Start();
  170. while(k==1)
  171. {
  172. Thread nit = new Thread(() => Work());
  173. nit.Start();
  174. brojKupaca++;
  175. Thread.Sleep(150);
  176.  
  177. }
  178. Console.ReadLine();
  179. Console.WriteLine(ukupanBrojArtikla);
  180. Console.WriteLine(brojKupaca);
  181. Console.WriteLine(ukupanBrojArtikla/brojKupaca);
  182. }
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement