Advertisement
Layvu

M0. Многопоточное программирование

Apr 17th, 2023 (edited)
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.01 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace ParallelWork;
  5.  
  6. class Program
  7. {
  8.     static object locker = new object();
  9.     static int sharedData;
  10.  
  11.     static void Main(string[] args)
  12.     {
  13.         var readerThread = new Thread(Reader);
  14.         var writerThread = new Thread(Writer);
  15.         readerThread.Start();
  16.         writerThread.Start();
  17.     }
  18.  
  19.     static void Reader()
  20.     {
  21.         while (true)
  22.         {
  23.             lock (locker)
  24.             {
  25.                 Thread.Sleep(2000);
  26.                 Console.WriteLine("ReaderThread {0} считал данные: {1}", Thread.CurrentThread.ManagedThreadId, sharedData);
  27.             }
  28.         }
  29.     }
  30.  
  31.     static void Writer()
  32.     {
  33.         while (true)
  34.         {
  35.             lock (locker)
  36.             {
  37.                 Thread.Sleep(2000);
  38.                 sharedData++;
  39.                 Console.WriteLine("WriterThread {0} записал данные: {1}", Thread.CurrentThread.ManagedThreadId, sharedData);
  40.             }
  41.         }
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement