临界区,即关键代码段,在这段代码,涉及到对一个资源的写入访问,可考虑用临界区,资源可以是:
(1)实体的硬件:比如打印机、显示装置;
(2)1个文件;
(3)全局变量加法、减法操作等。
不同平台的临临界区用法如下:
1. c++ builder:
TCriticalSection cs;
cs.Acquire()
// Critical code section;
cs.Release()
2. mfc:
CCriticalSection cs;
cs.Lock();
// Critical code section;
cs.Unlock();
3.QT:
QMutex mutex;
mutex.lock();
// Critical code section;
mutex.unlock();
4. c++11:
std::mutex mtx;
mtx.lock();
// Critical code section;
mtx.unlock();
5.c#,使用lock关键字
Object thisLock = new Object();
lock (thisLock)
{
// Critical code section
}