Posts Tagged ‘структуры данных’

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

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

Under : , , , ,

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

(далее…)

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

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

Under : , , , ,

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

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

(далее…)

Деревья в SQL.

Вторник, Апрель 17th, 2012 Нет комментариев

Under : , , , ,

Дерево — специальный вид направленного графа. Графы — структуры данных, состоящие из узлов связанных дугами. Кажая дуга показывает однонаправленную связь между двумя узлами. В организационной диаграмме, узлы — сотрудники, а каждая дуга описывает подчинения. В перечне материалов, узлы — модули (в конечном счете, показываемые до индивидуальных частей), и дуги описывают отношение «сделан из».

Вершина дерева называется корнем. В организационной диаграмме, это самый большой начальник; в перечне материалов, это собранная деталь. Двоичное дерево — это дерево, в котором узел может иметь не более двух потомков; В общем случае, n-мерное дерево — то, в котором узел может иметь не больше чем n узлов — потомков. (далее…)