🌷🌷🌷🌷例子1:使用Monitor类实现临界区
🌷🌷🌷🌷例子2:使用Mutex类实现互斥
🌷🌷🌷🌷例子3:使用Semaphore类实现资源控制
🌷🌷🌷🌷例子4:使用AutoResetEvent实现线程间通信
例子1:使用Monitor类实现临界区
public class Counter
{
private int count;
private object lockObject = new object();
public void Increment()
{
lock (lockObject)
{
count++;
}
}
public int GetCount()
{
lock (lockObject)
{
return count;
}
}
}
解析:在这个例子中,Counter类具有一个共享的计数器count和一个用于同步的锁对象lockObject。在Increment()和GetCount()方法中,使用lock关键字来获取锁对象,确保同一时刻只有一个线程可以访问和修改计数器。这样就实现了临界区,保护了计数器的数据一致性。