@taylor96

Задача на синхронизацию. Почему получается приоритет читателя?

Нужно задать справедливое распределение доступа и читателям и писателям.
Не могу понять, что не так в моем варианте.

using System;
using System.Threading;

namespace rw_ReaderWriterLockSlim
{
    class Program
    {
        static ReaderWriterLockSlim rwLockSlim = new ReaderWriterLockSlim();
        static bool one = true;
        static int n = 0;

        public static void Count(object obj)
        {
            one = false;
        }

        public static void WriterFunction()
        {
            while (one)
            {
                rwLockSlim.EnterReadLock();
                Console.WriteLine(Thread.CurrentThread.Name);
                n++;
                rwLockSlim.ExitReadLock();
                
            }
            rwLockSlim.EnterWriteLock();
        }

        public static void ReaderFunction()
        {
            while (one)
            {
                rwLockSlim.EnterWriteLock();
                Console.WriteLine(Thread.CurrentThread.Name);
                n++;
                rwLockSlim.ExitWriteLock();
                
            }
            rwLockSlim.EnterReadLock();
        }

        static void Main()
        {

            for (int i = 0; i < 64; i++)
            {
                Thread myThread = new Thread(ReaderFunction);

                myThread.Name = i.ToString() + "й ПРОЧИТАЛ";
                myThread.Start();
            }
            for (int i = 0; i < 4; i++)
            {
                Thread myThread = new Thread(WriterFunction);
                myThread.Name = i.ToString() + "й записал";
                myThread.Start();
            }


            Timer timer = new Timer(Count, null, 1000, 1000);
            Console.ReadLine();
            Console.WriteLine(n);
            Console.ReadLine();
        }
    }
}
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
Почему получается приоритет читателя?

Как вы это поняли? Что такое приоритет? Что такое справедливое распределение доступа? Причём тут синхронизация?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы