临界区,是一种锁,锁入临界区的是什么?
代码?全局变量?局部变量
卖票程序中出现的纰漏都是由于多个线程对于全局变量的操作中出现的问题,是共享资源大家都可以用,造成“乱”的结果
这次内容的主题是会用临界区,会用自动临界区(不太好听,自动锁),封装临界区
会用临界区:
上一篇结尾的时候附了代码一幅图,知道临界区是干嘛的,怎么用
关键在于自动锁是什么,怎么实现的:
题目:怎么上锁,可以自动解锁呢(思考过后再看下面-------------)
--
--
--
利用的是一个小技巧,在{}里建对象,出了{}自动调用对象的析构函数,将进入临界区封装在构造中,出临界区封装在析构函数中
普通的{},在main里也适用
封装自动锁