关键代码段的一段精彩论述:CRITICAL_SECTION就是一个厕所,抽水马桶是你要保护的数据

来源:互联网 发布:淘宝主机靠谱吗 编辑:程序博客网 时间:2024/04/28 03:14
由于飞机上的厕所很小,每次只能有一个人进去使用马桶(受保护的资源);
如果有多个不是一道使用的资源(有多个马桶,但不能放在一起使用),比如Thread1 和 Thread2访问一个资源,Thread1和 Thread3访问另一个资源,那么应该为每个资源创建一个厕所!
如果有多个资源总是一起被使用的话(多个马桶可以放在一个厕所里用),就把他们全部放在一个厕所里。可以创建一个CRITICAL_SECTION结构来保护所有的资源。
Now,线程,无论何时何地要访问资源(进厕所),你首先要check厕所门上的“有人”标志(调用EnterCriticalSection函数)。
有人:就在门外等吧。什么?你要努力挤进去?资源就会遭到破坏
没人:爽了,使用吧!
原创粉丝点击