У лекції розберемо, чому звичайні колекції на кшталт
List<T> і
Dictionary<TKey, TValue> ламаються у багатопоточності (гонки даних), чому одного
lock часто замало, і як потокобезпечні колекції з
System.Collections.Concurrent розвʼязують ці проблеми. Розглянемо ключові структури:
ConcurrentQueue<T>,
ConcurrentStack<T>,
ConcurrentBag<T>,
ConcurrentDictionary<TKey, TValue>, їхні сценарії (producer–consumer, кешування, пули обʼєктів) та критерії вибору.