kikosiak

Untitled

Dec 3rd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.07 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace zad6
  5. {
  6.     class Program
  7.     {
  8.         static int liczbaIteracji = 10;
  9.         static int liczbaWatkow = 10;
  10.         static object _lock = new object();
  11.         private static readonly object m_oPadlock = new object();
  12.         static void wyswietlajCos()
  13.         {
  14.             Random rand = new Random(Thread.CurrentThread.ManagedThreadId);//inicjuj random numerem wątka
  15.             Thread.Sleep(rand.Next(0, 100));
  16.             Console.WriteLine(Thread.CurrentThread.Name + " zaczyna pisać:");
  17.             Thread.Sleep(100);
  18.             for (int ii = 0; ii < liczbaIteracji; ii++)
  19.             {
  20.                 Monitor.Enter(m_oPadlock);
  21.                 Console.Write("ala ");
  22.                 Thread.Sleep(rand.Next(0, 100));  //wstrzymaj działanie na czas od 0 do 0,1
  23.                 Console.Write("ma ");
  24.                 Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 0,1
  25.                 Console.WriteLine("kota " + ii); Monitor.Exit(m_oPadlock);
  26.                 Thread.Sleep(rand.Next(0, 2000)); //wstrzymaj działanie na czas od 0 do 2s            
  27.                
  28.             }
  29.             Monitor.Enter(m_oPadlock);
  30.             Console.WriteLine(Thread.CurrentThread.Name + " zakończył pisać.");
  31.             Monitor.Exit(m_oPadlock);
  32.         }
  33.         static void Main(string[] args)
  34.         {
  35.             Thread[] tablicaWatkow = new Thread[liczbaWatkow];
  36.             for (int licznik = 0; licznik < liczbaWatkow; licznik++) //tworzymy, nadajemy nazwę i uruchamiamy wątki
  37.             {
  38.                 tablicaWatkow[licznik] = new Thread(new ThreadStart(wyswietlajCos));
  39.                 tablicaWatkow[licznik].Name = "Wątek nr " + licznik.ToString();
  40.                 tablicaWatkow[licznik].Start();
  41.             }
  42.             foreach (Thread watek in tablicaWatkow) //czekamy na wszystkie wątki
  43.             {
  44.                 watek.Join();
  45.             }
  46.             Console.WriteLine("To już jest koniec, naciśnij ENTER...");
  47.             Console.ReadLine();
  48.         }
  49.     }
  50. }
Add Comment
Please, Sign In to add comment