Advertisement
Guest User

bemmater

a guest
May 26th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.40 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.  
  9. namespace ZADATAK_BANKA_POKUSAJ_2
  10. {
  11.     class Program
  12.     {
  13.  
  14.         static SemaphoreSlim semafor1 = new SemaphoreSlim(15);
  15.         static AutoResetEvent a1 = new AutoResetEvent(true);
  16.         static readonly object obj1 = new object();
  17.  
  18.         static bool b = true;
  19.         static int brojLjudi = 0;
  20.         static int brojUplatnica = 0;
  21.         static int ukupanBrojUplatnica = 0;
  22.         static int k = 0;
  23.         static void radnoVreme()
  24.         {
  25.             Thread.Sleep(17000);
  26.             k++;
  27.             Console.WriteLine("........BANKA SE ZATVORILA !!!...........");
  28.         }
  29.  
  30.         static void Salter3()
  31.         {
  32.             Console.WriteLine("Klijent popunjava uplatnicu/ce na salteru 3.");
  33.             Thread.Sleep(brojUplatnica * 40);
  34.             Console.WriteLine("Klijent prolazi pored obezbedjenja i napusta banku.");
  35.             semafor1.Release();
  36.         }
  37.  
  38.         static void Salter12()
  39.         {
  40.             Console.WriteLine("Klijent dolazi na jedan od prva dva saltera.");
  41.             Thread.Sleep(brojUplatnica * 40);
  42.             Console.WriteLine("Klijent prolazi pored obezvedjenja i napusta banku.");
  43.             semafor1.Release();
  44.         }
  45.         static void Banka()
  46.         {
  47.             semafor1.Wait();
  48.             Console.WriteLine("Klijent je usao u banku.");
  49.             a1.WaitOne();
  50.             Console.WriteLine("Obezbedjenje proverava klijenta.");
  51.             a1.Set();
  52.  
  53.             lock (obj1)
  54.             {
  55.                 Random r = new Random();
  56.                 brojUplatnica = r.Next(1, 5);
  57.                 ukupanBrojUplatnica += brojUplatnica;
  58.                 if (brojUplatnica > 3)
  59.                 {
  60.                     Salter3();
  61.                 }
  62.                 else
  63.                 {
  64.                     Salter12();
  65.                 }
  66.             }
  67.         }
  68.  
  69.         static void Main(string[] args)
  70.         {
  71.             Thread nit = new Thread(radnoVreme);
  72.             nit.Start();
  73.            
  74.             while(k ==0)  
  75.             {
  76.                 Thread niti = new Thread(Banka);
  77.                 nit.Start();
  78.                 Thread.Sleep(70);
  79.             }
  80.             Console.WriteLine("UKUPAN BROJ UPLATA TOG DANA JE: {0}", ukupanBrojUplatnica);
  81.         }
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement