频繁使用临界区对程序都有哪些影响?一次加锁的效率如何?谢谢!
解决方案 »
- 为什么Visual Studio 2003打开项目后,CPU就100%了?
- 利用system调用程序之后如何消隐出现的dos窗口?
- 送尽所有分数,讨论界面的实现!参与就给分,不够再加!
- 为什么98可以,2000不行
- NetMeeting的通信协议怎么研究??BOSS给的任务,诸位给个建议呀!~!!
- 请问使用VC访问数据库的过程。
- 菜鸟高分求救:如何取得菜单指针
- 为什么select返回有数据可读,但是recv读取返回0???望高人指点
- ArcTo()函数中的CRect &rect有什么用?
- oracle查询出来的记录数将近几万条,我想在查询结果中在查询,请问各位大侠怎么实现啊?如果在重新查找数据库的话就太慢了,想在查询出来的结果中再查询,请各位指教
- VC中如何将时间设为一个窗口的标题
- COne(int a):x(a),r(x){}这样的结构,不知道大家能否为我解释哈?
一次加锁只能省去采用多次进入时的EnterCriticalSection、LeaveCriticalSection函数调用开销和几个互锁函数的开销,并且避免了多次进入CS时,中间操作的阻塞.
而既然有这个疑问,就表示一次加锁的话,临界区内会执行不少不需要CS保护的操作,如果这些操作很快速,并且可以换取前面节省的时间的话,可以选择一次加锁;如果这些操作有可能使线程挂起,那最好还是选择多次进入的好.