Advertisement
Guest User

bemmater

a guest
May 24th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Threading;
  7.  
  8. namespace ZADATAK_UNOSENJE_KUTIJA_U_KAMION
  9. {
  10.     class Program
  11.     {
  12.  
  13.         static int brojKutija = 40;
  14.         static int necineKutije = 0;
  15.         static int bobiskineKutije = 0;
  16.         static int comineKutije = 0;
  17.         static readonly object obj = new object();
  18.         static CountdownEvent count = new CountdownEvent(1);
  19.  
  20.        
  21.  
  22.         static void Unos()
  23.         {
  24.             lock(obj)
  25.             {
  26.                 brojKutija--;
  27.             }
  28.         }
  29.  
  30.         static void Kutije()
  31.         {
  32.             while (brojKutija > 0)
  33.             {
  34.                 string ime = Thread.CurrentThread.Name;
  35.                 if (ime == "Neca")
  36.                 {
  37.                     Random r = new Random();
  38.                     Thread.Sleep(r.Next(20, 25));
  39.                     Console.WriteLine(ime + " je uneo kutiju u kombi.");
  40.                     Unos();
  41.                     necineKutije++;
  42.                    
  43.                 }
  44.  
  45.                 if (ime == "Bobiska")
  46.                 {
  47.                     Random r = new Random();
  48.                     Thread.Sleep(r.Next(22, 23));
  49.                     Console.WriteLine(ime + " je uneo kutiju u kombi.");
  50.                     Unos();
  51.                     bobiskineKutije++;
  52.                    
  53.                 }
  54.  
  55.                 if (ime == "Comi")
  56.                 {
  57.                     Random r = new Random();
  58.                     Thread.Sleep(r.Next(18, 30));
  59.                     Console.WriteLine(ime + " je uneo kutiju u kombi.");
  60.                     Unos();
  61.                     comineKutije++;
  62.                    
  63.                 }
  64.             }
  65.             if (brojKutija < 0)
  66.             {
  67.                 count.Signal();
  68.             }
  69.         }
  70.  
  71.         static void Main(string[] args)
  72.         {
  73.            
  74.  
  75.             Thread n1 = new Thread(Kutije);
  76.             n1.Name = "Neca";
  77.             n1.Start();
  78.  
  79.             Thread n2 = new Thread(Kutije);
  80.             n2.Name = "Bobiska";
  81.             n2.Start();
  82.  
  83.             Thread n3 = new Thread(Kutije);
  84.             n3.Name = "Comi";
  85.             n3.Start();
  86.  
  87.             count.Wait();
  88.             if (necineKutije > bobiskineKutije && necineKutije > comineKutije)
  89.             {
  90.                 Console.WriteLine("NECA ima najvise kutija unesenih u kombi, broj kutija: {0}", necineKutije);
  91.             }
  92.             if (bobiskineKutije > necineKutije && bobiskineKutije > comineKutije)
  93.             {
  94.                 Console.WriteLine("BOBISKA ima najvise kutija unesenih u kombi, broj kutija: {0}", bobiskineKutije);
  95.             }
  96.             if (comineKutije > necineKutije && comineKutije > bobiskineKutije)
  97.             {
  98.                 Console.WriteLine("COMI ime najvise kutija unesenih u kombi, broj kutija: {0}", comineKutije);
  99.             }
  100.         }
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement