Почему происходит блокировка потоков в приведенном коде - C#
Формулировка задачи:
Здравствуйте. Есть метод run. Создаются и запускаются 2 потока для вызова этого метода. По моему разумению потоки дойдя до первой 1000 должны были синхронизироваться и выводить каждый по следующей тысяче блокирую друг друга на время вывода. Однако этого не происходит, второй поток досчитав до 1000 блокируется, а первый не включается. Может кто объяснить?
void run() { count=0; do { lock(this) { count++; Console.WriteLine(count); if(count%1000=0) { Monitor.Pulse(this); Monitor.Wait(this) } } } while (count<10000) }
Решение задачи: «Почему происходит блокировка потоков в приведенном коде»
textual
Листинг программы
if(count%1000=0)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д