Thread.Sleep и lock - C#

Узнай цену своей работы

Формулировка задачи:

Что будет если вызвать Thread.Sleep() внутри блока кода lock?

Решение задачи: «Thread.Sleep и lock»

textual
Листинг программы
  1. using System;
  2. using System.Threading;
  3. class Locker { }
  4. static class SyncLock
  5. {
  6.     static int[] nums = {1,2,3,4,5,6,7,8,9};
  7.     static Locker lockThis = new Locker();
  8.     public static void Sum()
  9.     {
  10.  
  11.         for (int i = 0, j = 0; i < 9; i++)
  12.         {
  13.             lock (lockThis)
  14.             {
  15.                 Console.Write("{0} ", j += nums[i]);
  16.                 nums[i] = 1;
  17.                 Thread.Sleep(2);
  18.             }
  19.         }
  20.            
  21.         }
  22.     }
  23. class demo
  24. {
  25.     static void Main()
  26.     {
  27.         Thread thrd1 = new Thread(SyncLock.Sum);
  28.         Thread thrd2 = new Thread(SyncLock.Sum);
  29.         thrd1.Start();  
  30.         thrd2.Start();
  31.         thrd1.Join();
  32.         thrd2.Join();
  33.     }
  34. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут