Многопоточное программирование на C# Задача: Обедающие философы. Задан трехдольный граф связей n философов, m вилок, k ножей. (для того, чтобы приступить к обеду, философ должен взять одну вилку и один нож из тех, до которых может дотянуться согласно графу связей и которые еще не взяты другими философами). Необходимо: 1. Спроектировать структуру многопоточного приложения, поставить в соответствие элементам моделируемой системы потоки управления 2. Разработать и отладить на выбранном языке многопоточную программу моделирования поведения заданной системы, предусмотреть вывод детальной истории поведения всех элементов системы. 3. Промоделировать поведение описанной системы для различных значений ее параметров. 4. Проанализировать результаты моделирования, выявить и объяснить возможные отклонения от ожидаемых, в том числе такие как возникновение дедлоков.