Advertisement
Guest User

Untitled

a guest
May 27th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.69 KB | None | 0 0
  1. sing System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Threading;
  7. using System.IO;
  8.  
  9. namespace ConsoleApp14
  10. {
  11.     class Program
  12.     {
  13.         static int m = 3;
  14.         static int k = 1;
  15.         static int red1 = 0;
  16.         static int red2 = 0;
  17.         static int red3 = 0;
  18.         static Random r = new Random();
  19.         static readonly object locker = new object();
  20.         static int najmanji()
  21.         {
  22.             if(red1<red2)
  23.             {
  24.                 return 1;
  25.             }
  26.             else if(red2<red3)
  27.             {
  28.                 return 2;
  29.             }
  30.             else if(red3<red1)
  31.             {
  32.                 return 3;
  33.             }
  34.             else
  35.             {
  36.                 return (r.Next(1, 3));
  37.             }
  38.         }
  39.         static void salter1()
  40.         {
  41.             Console.WriteLine("Korinsik je stao na salter1");
  42.             Thread.Sleep(200);
  43.  
  44.         }
  45.         static void salter2()
  46.         {
  47.             Console.WriteLine("Korinsik je stao na salter2");
  48.             Thread.Sleep(200);
  49.  
  50.         }
  51.         static void salter3()
  52.         {
  53.             Console.WriteLine("Korinsik je stao na salter3");
  54.             Thread.Sleep(200);
  55.  
  56.         }
  57.         static void dolazak(int m)
  58.         {
  59.             Console.WriteLine("Korisnik je dosao u postu");
  60.             Thread.Sleep(100);
  61.             int najkraciRed = najmanji();
  62.             if (najkraciRed == 1 && red1<m)
  63.             {
  64.                 lock (locker)
  65.                 {
  66.                     red1++;
  67.                 }
  68.                 salter1();
  69.                 lock (locker)
  70.                 {
  71.                     red1--;
  72.                 }
  73.             }
  74.             if (najkraciRed == 2 && red2<m)
  75.             {
  76.                 lock (locker)
  77.                 {
  78.                     red2++;
  79.                 }
  80.                 salter2();
  81.                 lock (locker)
  82.                 {
  83.                     red2--;
  84.                 }
  85.             }
  86.             if (najkraciRed == 3 && red3<m)
  87.             {
  88.                 lock (locker)
  89.                 {
  90.                     red3++;
  91.                 }
  92.                 salter3();
  93.                 lock (locker)
  94.                 {
  95.                     red3--;
  96.                 }
  97.             }
  98.         }
  99.  
  100.  
  101.         static void Main(string[] args)
  102.         {
  103.             Console.WriteLine("Upisite m");
  104.             int m = int.Parse(Console.ReadLine());
  105.             while(k==1)
  106.             {
  107.                 Thread posta = new Thread (() => dolazak(m));
  108.                 posta.Start();
  109.             }
  110.             Console.ReadKey();
  111.         }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement