.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 2
[unable to retrieve full-text content]Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight.
Я продолжаю создавать текстовую версию своего выступления на митапе по многопоточности. С первой частью можно ознакомиться здесь или здесь, там речь больше шла о базовом наборе инструментов, чтобы запустить поток или Task, способах просмотреть их состояние и некоторых сладких мелочах, вроде PLinq. В этой статье хочу больше остановится на проблемах, которые могут возникнуть в многопоточной среде и некоторых способах их решения.
Содержание
- О разделяемых ресурсах
- Возможные проблемы при работе в многопоточной среде
- Deadlock
- Race-Condition
- Busy-Wait
- Thread Starvation
- Средства синхронизации
- Interlocked
- Monitor.Enter, Monitor.Exit, lock
- SpinLock, SpinWait
- Monitor.Wait, Monitor.Pulse[All]
- ReaderWriterLockSlim
- Семейство ResetEvent
- Выводы
Читать дальше →