tripolitov / hh-test-netology-multithreading

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Многопоточность

Сигнализация

Позволяет потоку ждать уведомления или сигнала от одного или нескольких потоков, что бы продолжить исполнение.

Примитив синхронизации AutoResetEvent

Описание

System.Threading.EventWaitHandle представляет событие синхронизации потоков и может быть в сигнальном или несигнальном состоянии. Два важных метода

  • Set - устанавливает сигнальное состояние события, что позволяет продолжить выполнение одному или нескольким ожидающим потокам;
  • Reset - задает несигнальное состояние события, вызывая блокирование потоков; System.Threading.AutoResetEvent является производным от System.Threading.EventWaitHandle и при получении сигнала автоматически сбрасывается в сигнальное состояние после освобождения одиночного потока в состоянии ожидания.

Задача

Реализовать многопоточное консольное приложение которое выводит на консоль бесконечную последовательность строк ping и pong в соответсвии со следующими условиями:

  1. Для вывод ping и pong используются разные потоки
  2. Первым выводится ping
  3. После ping выводится pong
  4. После pong выводится ping

Пример вывода

ping
pong
ping
pong
ping
pong
pong
pong

About


Languages

Language:C# 100.0%