Редактировал(а) Alexandr Fokin 2023/01/11 15:19

<
От версии < 6.1 >
отредактировано Alexandr Fokin
на 2020/01/24 15:55
К версии < 5.4 >
отредактировано Alexandr Fokin
на 2020/01/06 20:20
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -10,7 +10,7 @@
10 10  Это самые часто используемые конструкции для синхронизации потоков. Реализуют идею критической секции: то есть код, написанный между вызовами Monitor.Enter, Monitor.Exit на одном ресурсе может быть выполнен в один момент времени лишь одним потоком. Оператор lock является синтаксическим сахаром вокруг вызовов Enter/Exit обернутых в try-finally. Приятной особенностью реализации критической секции в .NET является возможность повторного входа в нее для одного и того же потока.
11 11  
12 12  Mutex нужен для синронизации на уровне ОС. (Может использоваться несколькими приложениями)
13 -Семафоры позволяют ограничить доступ определенным количеством потоков.
13 +Семафоры позволяют ограничить доступ определенным количеством объектов.
14 14  
15 15  ReaderWriterLockSlim
16 16  Либо много потоков читает, либо 1 поток пишет
... ... @@ -17,8 +17,6 @@
17 17  
18 18  При использовании инструментов важно освобождать освобождать блокировку, даже если в процессе выполнения вылетит exception.
19 19  Шаблон:
20 -
21 -{{code language="c#"}}
22 22  try
23 23  {
24 24   LockSection();
... ... @@ -29,7 +29,6 @@
29 29  {
30 30   UnlockSection();
31 31  }
32 -{{/code}}
33 33  
34 34  Примеры
35 35  Запись в один и тот же файл с разных потоков. (В определенный момент времени в файл записывает только 1 поток)
... ... @@ -66,11 +66,9 @@
66 66  Материалы:
67 67  * [[Habr Async/await в C#: концепция, внутреннее устройство, полезные приемы>>https://habr.com/ru/post/470830/]]
68 68  * [[Metanit Aсинхронное программирование>>https://metanit.com/sharp/tutorial/13.3.php]]
69 -* [[Habr Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET>>https://habr.com/ru/company/dodopizzadev/blog/435666/]]
70 -* [[Habr Async/await в C#: подводные камни>>https://habr.com/ru/post/257221/]]
71 -* [[Habr Async/await и механизм реализации в C# 5.0>>https://habr.com/ru/post/260217/]]
72 72  
73 73  
68 +
74 74  **Taskcompletionsource**
75 75  
76 76  Материалы: