Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Diagnostics;
- namespace Zadatak2_Pokloni_
- {
- class Program
- {
- static readonly object locker = new object();
- static readonly object locker1 = new object();
- static int red1 = 0;
- static int red2 = 0;
- static int red3 = 0;
- static int red4 = 0;
- static int ukupanBrojArtikla = 0;
- static int k = 1;
- static int brojKupaca = 0;
- static void KasaBrza1(int brojac)
- {
- Console.WriteLine("Stao je na brzu kasu1");
- Dodaj(brojac);
- Thread.Sleep((100 * brojac));
- Smanjivac(brojac);
- }
- static void KasaBrza2(int brojac)
- {
- Console.WriteLine("Stao je na brzu kasu 2");
- Dodaj(brojac);
- Thread.Sleep((100 * brojac));
- Smanjivac(brojac);
- }
- static void KasaObicna1(int brojac)
- {
- Console.WriteLine("Stao je na obicnu kasu1");
- Dodaj(brojac);
- Thread.Sleep((100 * brojac));
- Smanjivac(brojac);
- }
- static void Smanjivac(int red)
- {
- lock(locker)
- {
- if (red == 1)
- {
- red1--;
- }
- if (red == 2)
- {
- red2--;
- }
- if (red == 3)
- {
- red3--;
- }
- if (red == 4)
- {
- red4--;
- }
- }
- }
- static void Dodaj(int red)
- {
- lock (locker1)
- {
- if (red == 1)
- {
- red1++;
- }
- if (red == 2)
- {
- red2++;
- }
- if (red == 3)
- {
- red3++;
- }
- if (red == 4)
- {
- red4++;
- }
- }
- }
- static void KasaObicna2(int brojac)
- {
- Console.WriteLine("Stao je na obicnu kasu 2");
- Dodaj(brojac);
- Thread.Sleep((100 * brojac));
- Smanjivac(brojac);
- }
- static int minimal()
- {
- int[] niz = new int[4];niz[0] = red1;niz[1] = red2;niz[2] = red3;niz[3] = red4;
- int min = niz[0];
- for(int i=0;i<4;i++)
- {
- if (niz[i] < min)
- {
- min = niz[i];
- }
- }
- if (min == niz[0])
- return 1;
- else if (min == niz[1])
- return 2;
- else if (min == niz[2])
- return 3;
- else if (min == niz[3])
- return 4;
- else return 50;
- }
- static void stoperica()
- {
- Stopwatch stoperica = new Stopwatch();
- stoperica.Start();
- Thread.Sleep(20000);
- stoperica.Stop();
- k++;
- }
- static void Work()
- {
- Random r = new Random();
- int brojac = (r.Next(1,10));
- int brojNajmanjihUredu = minimal();
- ukupanBrojArtikla += brojac;
- if (brojac <= 5 && brojNajmanjihUredu == 1)
- {
- Console.WriteLine(brojac);
- KasaBrza1(brojac);
- }
- if (brojac <= 5 && brojNajmanjihUredu == 2)
- {
- Console.WriteLine(brojac);
- KasaBrza2(brojac);
- }
- if (brojac > 5 && brojNajmanjihUredu == 3)
- {
- Console.WriteLine(brojac);
- KasaObicna1(brojac);
- }
- if (brojac > 5 && brojNajmanjihUredu == 4)
- {
- Console.WriteLine(brojac);
- KasaObicna2(brojac);
- }
- if(ukupanBrojArtikla>=400)
- {
- k++;
- }
- }
- static void Main(string[] args)
- {
- Thread Stoperica1 = new Thread(() => stoperica());
- Stoperica1.Start();
- while(k==1)
- {
- Thread nit = new Thread(() => Work());
- nit.Start();
- brojKupaca++;
- Thread.Sleep(150);
- }
- Console.ReadLine();
- Console.WriteLine(ukupanBrojArtikla);
- Console.WriteLine(brojKupaca);
- Console.WriteLine(ukupanBrojArtikla/brojKupaca);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement