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();
}
}