首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

CRITICAL_SECTION 要害段 OR 临界区

2013-10-16 
CRITICAL_SECTION 关键段 OR 临界区图 4 初始化顺序小结几乎所有的多线程程序均使用临界区。您迟早都会遇到

CRITICAL_SECTION 关键段 OR 临界区




图 4 初始化顺序



小结


几乎所有的多线程程序均使用临界区。您迟早都会遇到一个使代码死锁的临界区,并且会难以确定是如何进入当前状态的。如果能够更深入地了解临界区的工作原理,则这一情形的出现就不会像首次出现时那样的令人沮丧。您可以研究一个看来非常含糊的临界区,并确定是谁拥有它,以及其他有用细节。如果您愿意将我们的库加入您的链接器行,则可以容易地获得有关您程序临界区使用的大量信息。通过利用临界区结构中的一些未用字段,我们的代码可以仅隔离并命名您的模块所用的临界区,并告知其准确状态。


有魄力的读者可以很容易地对我们的代码进行扩展,以完成更为异乎寻常的工作。例如,采用与 InitializeCriticalSection
挂钩相类似的方式截获 EnterCriticalSection 和
LeaveCriticalSection,可以存储最后一次成功获得和释放该临界区的位置。与此类似,CritSect DLL 拥有一个易于调用的
API,用于枚举您自己的代码中的临界区。利用 .NET Framework 中的 Windows 窗体,可以相对容易地创建一个 GUI 版本的
MyCriticalSections。对我们代码进行扩展的可能性非常大,我们非常乐意看到其他人员所发现和创造的创新性办法。



Demo 可参看

MoreWindows的秒杀多线程第五篇 经典线程同步 关键段CS  http://blog.csdn.net/morewindows/article/details/7442639

热点排行