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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д