Многопоточность и асинхронность
Версия 24.16 от Alexandr Fokin на 2022/12/15 10:58
Понятие критической секции. | Некоторый блок кода, в котором работа несколько поток ограничивается или управляется некоторым образом. Например в критической секции разрешена работа только одного потока, остальные потоки будут ожидать. (Т.е. Пессимистичная блокировка) |
Понятие токена. | Поток проверяет токен, если токен свободен - забирает себе, иначе ожидает освобождения. В конце секции поток освобождает токен. |
Простой пример:
Запись в один и тот же файл с разных потоков. (В определенный момент времени в файл записывает только 1 поток)
Книги
- Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование. | O’Reilly
- CLR via C# | Джеффри Рихтер