.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
  • Выводы


Читать дальше →

© Habrahabr.ru