Windows 95 系统下的Critical Section(临界区域)的一个有趣的问题

许振坪 2008-03-31 10:13:22

大家都知道Critical Section(临界区域)是用来同步线程见通讯的。我在multithreading applications in Win32书中(102页)看到这么一段话:
在Windos NT中,如果一个线程要进入Critical Section(即调用了函数EnterCriticalSection)而在未离开的情况下就结束(即没有调用LeaveCriticalSection),该Critical Section会被永远锁住(指导进程结束)。然而在Windows 95中,如果发生同样的事情,其他等着要进入该Critical Section的线程,将获准进入。
我很想知道,这到底是不是真的?所以我上传了简单的关于线程通讯的源码,在ThreadOne函数中把LeaveCriticalSection封掉),想证实下。我的系统是XP的,运行结果如下:
XP:
望不同的系统者也试下,把结果贴上来看看。研究下。o(∩_∩)o...
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
许振坪 2008-04-05
  • 打赏
  • 举报
回复
没人要试吗??
kaizitop 2008-03-31
  • 打赏
  • 举报
回复
呵呵,我也是XP的系统,很期待有人试试!
顶!
许振坪 2008-03-31
  • 打赏
  • 举报
回复
晕,图没发成功!
源代码下载:http://download.csdn.net/source/398890
XP执行结果:
Thread 1:1
Thread 1:2
Thread 1:3
Thread 1:4
Thread 1:5
Thread 1:6
Thread 1:7
Thread 1:8
Thread 1:9
Thread 1:10

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧