Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- namespace zad7
- {
- class Program
- {
- static int liczbaIteracji = 10;
- static int liczbaWatkow = 10;
- static object _lock = new object();
- private static readonly object m_oPadlock = new object();
- static void wyswietlajCos()
- {
- Random rand = new Random(Thread.CurrentThread.ManagedThreadId);//inicjuj random numerem wątka
- Thread.Sleep(rand.Next(0, 100));
- Console.WriteLine(Thread.CurrentThread.Name + " zaczyna pisać:");
- Thread.Sleep(100);
- for (int ii = 0; ii < liczbaIteracji; ii++)
- {
- Monitor.Enter(m_oPadlock);
- Console.Write("ala ");
- Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 0,1
- Console.Write("ma ");
- Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 0,1
- Console.WriteLine("kota " + ii);
- Thread.Sleep(rand.Next(0, 100)); //wstrzymaj działanie na czas od 0 do 2s
- Monitor.Exit(m_oPadlock);
- }
- Monitor.Enter(m_oPadlock);
- Console.WriteLine(Thread.CurrentThread.Name + " zakończył pisać.");
- Monitor.Exit(m_oPadlock);
- }
- static void Main(string[] args)
- {
- Thread[] tablicaWatkow = new Thread[liczbaWatkow];
- for (int licznik = 0; licznik < liczbaWatkow; licznik++) //tworzymy, nadajemy nazwę i uruchamiamy wątki
- {
- tablicaWatkow[licznik] = new Thread(new ThreadStart(wyswietlajCos));
- tablicaWatkow[licznik].Name = "Wątek nr " + licznik.ToString();
- tablicaWatkow[licznik].Start();
- }
- foreach (Thread watek in tablicaWatkow) //czekamy na wszystkie wątki
- {
- watek.Join();
- }
- Console.WriteLine("To już jest koniec, naciśnij ENTER...");
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement