Advertisement
kikosiak

Untitled

Dec 1st, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace zad7
  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.  
  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.  
  20. for (int ii = 0; ii < liczbaIteracji; ii++)
  21. {
  22. Monitor.Enter(m_oPadlock);
  23.  
  24. Console.Write("ala ");
  25. Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 0,1
  26. Console.Write("ma ");
  27. Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 0,1
  28. Console.WriteLine("kota " + ii);
  29. Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 2s
  30.  
  31. Monitor.Exit(m_oPadlock);
  32. }
  33.  
  34.  
  35. Monitor.Enter(m_oPadlock);
  36. Console.WriteLine(Thread.CurrentThread.Name + " zakończył pisać.");
  37. Monitor.Exit(m_oPadlock);
  38. }
  39.  
  40.  
  41. static void Main(string[] args)
  42. {
  43. Thread[] tablicaWatkow = new Thread[liczbaWatkow];
  44. for (int licznik = 0; licznik < liczbaWatkow; licznik++) //tworzymy, nadajemy nazwę i uruchamiamy wątki
  45. {
  46. tablicaWatkow[licznik] = new Thread(new ThreadStart(wyswietlajCos));
  47. tablicaWatkow[licznik].Name = "Wątek nr " + licznik.ToString();
  48. tablicaWatkow[licznik].Start();
  49. }
  50. foreach (Thread watek in tablicaWatkow) //czekamy na wszystkie wątki
  51. {
  52. watek.Join();
  53. }
  54. Console.WriteLine("To już jest koniec, naciśnij ENTER...");
  55. Console.ReadLine();
  56. }
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement