Thread.Sleep и lock - C#

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

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

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

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

textual
Листинг программы
using System;
using System.Threading;
class Locker { }
static class SyncLock 
{
    static int[] nums = {1,2,3,4,5,6,7,8,9};
    static Locker lockThis = new Locker();
    public static void Sum() 
    {
 
        for (int i = 0, j = 0; i < 9; i++)
        {
            lock (lockThis)
            {
                Console.Write("{0} ", j += nums[i]);
                nums[i] = 1;
                Thread.Sleep(2);
            }
        }
            
        }
    }
class demo
{
    static void Main()
    {
        Thread thrd1 = new Thread(SyncLock.Sum);
        Thread thrd2 = new Thread(SyncLock.Sum);
        thrd1.Start();  
        thrd2.Start();
        thrd1.Join();
        thrd2.Join();
    }
}

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


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

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

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