Advertisement
kikosiak

Untitled

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