Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sing System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Threading;
- using System.IO;
- namespace ConsoleApp14
- {
- class Program
- {
- static int m = 3;
- static int k = 1;
- static int red1 = 0;
- static int red2 = 0;
- static int red3 = 0;
- static Random r = new Random();
- static readonly object locker = new object();
- static int najmanji()
- {
- if(red1<red2)
- {
- return 1;
- }
- else if(red2<red3)
- {
- return 2;
- }
- else if(red3<red1)
- {
- return 3;
- }
- else
- {
- return (r.Next(1, 3));
- }
- }
- static void salter1()
- {
- Console.WriteLine("Korinsik je stao na salter1");
- Thread.Sleep(200);
- }
- static void salter2()
- {
- Console.WriteLine("Korinsik je stao na salter2");
- Thread.Sleep(200);
- }
- static void salter3()
- {
- Console.WriteLine("Korinsik je stao na salter3");
- Thread.Sleep(200);
- }
- static void dolazak(int m)
- {
- Console.WriteLine("Korisnik je dosao u postu");
- Thread.Sleep(100);
- int najkraciRed = najmanji();
- if (najkraciRed == 1 && red1<m)
- {
- lock (locker)
- {
- red1++;
- }
- salter1();
- lock (locker)
- {
- red1--;
- }
- }
- if (najkraciRed == 2 && red2<m)
- {
- lock (locker)
- {
- red2++;
- }
- salter2();
- lock (locker)
- {
- red2--;
- }
- }
- if (najkraciRed == 3 && red3<m)
- {
- lock (locker)
- {
- red3++;
- }
- salter3();
- lock (locker)
- {
- red3--;
- }
- }
- }
- static void Main(string[] args)
- {
- Console.WriteLine("Upisite m");
- int m = int.Parse(Console.ReadLine());
- while(k==1)
- {
- Thread posta = new Thread (() => dolazak(m));
- posta.Start();
- }
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement