Posts Tagged ‘Thread-safe’

Thread-safe структуры данных .NET 4 (ч. 1)

Воскресенье, Май 6th, 2012 Нет комментариев

Under : , , , ,

.NET 4 содержит богатый набор средств, упрощающих распараллеливание кода. Если мы начинаем обрабатывать некоторый набор данных одновременно в нескольких потоках, то автоматически поднимается вопрос о синхронизации выполнения этих потоков, в частности о том, где хранить результаты обработки. Существует достаточно способов координировать потоки между собой, и всегда можно реализовать любой из них. Но создатели Parallel Extensions уже позаботились об этом, и в состав .NET  4 был включен ряд «потокобезопасных» структур данных. Реализован набор наиболее популярных коллекций, с которыми я и предлагаю ознакомиться.

(далее…)

Thread-safe структуры данных .NET 4 (ч.2)

Суббота, Май 5th, 2012 Нет комментариев

Under : , , , ,

BlockingCollection<T> — эта потокобезопасная коллекция называется блокирующей, поскольку действует по следующему принципу:

  • Если коллекция пустая, и некоторый код пытается извлечь элемент, то поток, в котором он выполняется, блокируется до появления хотя бы одного элемента;
  • Если коллекция уже содержит максимальное число элементов, то поток, в котором пытаются добавить новый элемент, блокируется до тех пор, пока место не будет освобождено.

(далее…)