Ejemplo n.º 1
0
        public void PoducerConsumerProblem_Should_Succeed()
        {
            var producerConsumerProblem = new ProducerConsumerProblem();

            Thread.CurrentThread.Name = "Main Consumer Thread";
            var t1 = new Thread(
                () => producerConsumerProblem.Produce(1))
            {
                Name = "Producer Thread"
            };

            t1.Start();

            producerConsumerProblem.Consume();


            var t2 = new Thread(
                () =>
            {
                for (int i = 0; i < 10; i++)
                {
                    producerConsumerProblem.Produce(i);
                }
            }
                )
            {
                Name = "Producer Thread 2"
            };

            t2.Start();
        }
        public void PoducerConsumerProblem_Should_Result_InDeadLock()
        {
            var producerConsumerProblem = new ProducerConsumerProblem();

            Thread.CurrentThread.Name = "Main Consumer Thread";
            var t1 = new Thread(
                () => producerConsumerProblem.Produce(1));

            t1.Name = "Producer Thread";
            t1.Start();

            producerConsumerProblem.Consume();


            var t2 = new Thread(
                () =>
            {
                for (int i = 0; i < 10; i++)
                {
                    producerConsumerProblem.Produce(i);
                }
            }
                );

            t2.Name = "Producer Thread 2";
            t2.Start();
        }