본문 바로가기
서버

ReaderWriterLock

by Mostlove 2024. 8. 6.
728x90
반응형

using System;
using System.Threading;
using Systehttp://m.Threading.Tasks;
namespace ServerCore
{
    class Program
    {
        //1.근성
        //2.양보
        //3.갑질

        //Monitor
        static object _lock = new object();
        static SpinLock _lock2 = new SpinLock();
        static Mutex _lock3 = new Mutex();//무겁고 느리다
        //RWLock ReaderWriteLock
        static ReaderWriterLockSlim _lock4 = new ReaderWriterLockSlim();
        class Reward
        {

        }
        static Reward GetRewardById(int id)
        {
            _lock4.EnterReadLock();
            _lock4.ExitReadLock();
            return null;
        }

        static void AddReward(Reward reward)
        {
            _lock4.EnterWriteLock();
            _lock4.ExitWriteLock();
        }
        static void Main(string[] args)
        {
            lock( _lock )
            {

            }
            bool lockTaken = false;
            try
            {
                _lock2.Enter(ref lockTaken);
            }
            finally { _lock2.Exit(); }
        }
    }
}

반응형

'서버' 카테고리의 다른 글

ReaderWriterLock 구현  (0) 2024.08.06
AutoResetEvent  (0) 2024.08.06
Context Switching  (0) 2024.08.06
SpinLock  (0) 2024.07.30
DeadLock  (0) 2024.07.30