Пример #1
0
        public Philosopher[] CreateDiningPhilosophers(int count)
        {
            var arbitraryWaiter = new ArbitraryWaiter();

            var philosophers = new Philosopher[count];
            var forks        = Enumerable.Range(0, count).Select(i => new Fork()).ToArray();

            for (int i = 0; i < count; i++)
            {
                var philosopher = new Philosopher(
                    new ArbitraryHands(arbitraryWaiter, forks[i], forks[(i + 1) % count]));
                philosophers[i] = philosopher;
            }

            return(philosophers);
        }
Пример #2
0
 public ArbitraryHands(ArbitraryWaiter arbitraryWaiter, params Fork[] forks)
 {
     arbitraryWaiter_ = arbitraryWaiter;
     forks_           = forks;
 }