CLExecutiveFunctionProvider *myfunction = new CLMyFunction();
CLExecutive *pThread = new CLThread(myfunction);
SPara *p = new SPara;
p->Flag = 3;
pThread->Run((void *)p);
sleep(2);
{
CLCriticalSection cs(&(p->mutex));
p->Flag++;
cout << p->Flag << endl;
}
pThread->WaitForDeath();
delete p;
delete pThread;
delete myfunction;
在
mutex.Lock
()
和
mutex_Unlock
()
之间若存在复杂的函数调用,异常处理又当如何?
每次访问临界区,都需要显示调用加锁和解锁,能否简化
上述利用临界区来解决。
上述利用临界区来解决。
无论是异常退出还是中途调用
return
退出,都能保证解锁