并发与竞争

本文通过实例解释了并发和竞争条件的问题,并介绍了如何通过锁来保护共享资源的方法。此外,还详细阐述了临界区的概念及其重要性。

1.      并发和竞争

         用现实情况说明一下,如下图:

               

        如果ATM取钱或者Shopping刷卡是同时发生的,如果银行没做任何处理,则会出现如上情况。

         但银行是如何防止这样的事情发生的呢?

        很简单,在判断银行账户余额之前,只需冻结其账户,只能由一个人访问和操作,等这个人操作结束之后再由其他人操作。

        在编程的时候,也同样会遇到这种事情:保护共享资源。其中的一个解决办法就是:加锁。

2.      临界区:访问和操作共享数据的代码段。非常重要:真正需要保护的是数据,而不是代码

         并发的原因:抢占和重新调度

          a. 中断

          b. 软中断和tasklet

          c. 内核抢占

          d. 睡眠

          e. SMP

3.      锁

        机制: 把锁看成门锁, 临界区看成房间。 在指定的时间内,房间只能有一个线程, 某个线程进入房间后,它会锁住房门;完成对共享数据的操作后,走出房门,打开门 锁. 如果另外一个线程在房门上锁的时候来了,就必须等待房里的线程出来打开门锁,才能进入房间。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值