关于CRITICAL_SECTION、CCriticalSection和信号量的问题

CRITICAL_SECTION cs;
EnterCriticalSection(&cs);
LeaveCriticalSection(&cs);



CCriticalSection cs;
cs.Lock();
cs.UnLock();

效果和功能是否相同???

谁能给我讲一下信号量的用法,看了例子不太理解
 
 
 
DentistryDoctor(My heart will fly,in the sky.) 于 2005-8-31 12:32:40

CRITICAL_SECTION cs;
EnterCriticalSection(&cs);
LeaveCriticalSection(&cs);

??

还需要InitializeCriticalSection

CCriticalSection实际上是对CRITICAL_SECTION的封装而已,效果大致相关。但如果偿在MFC的工程中的话,推荐后者!
 
 
DentistryDoctor(My heart will fly,in the sky.) 于 2005-8-31 12:33:25

后者与CSingleLock配合可以很方便的实现自旋锁。
 
 
gohappy_1999(碧水蓝天) 于 2005-8-31 12:33:38

CRITICAL_SECTION cs;
使用CRITICAL_SECTION对象,先要初始化(InitializeCriticalSection(&cs),
用完后要删除(DeleteCriticalSection(&cs))。
两者效果一样
EnterCriticalSection(&cs); = cs.Lock();
LeaveCriticalSection(&cs); = cs.UnLock();
 
 
oyljerry(【勇敢的心】→ ㊣MS-My Dream√㊣) 于 2005-8-31 13:17:28

信号量可以多个线程进入锁定
 
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页