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 |