Android之linux基础教学之八 内核同步介绍

本文探讨了为何需要同步机制、同步的基本原则及其应用场景。解释了读写操作的区别、同步粒度的重要性,并给出了避免死锁的建议。

1.第一个问题:为什么要同步?         

    如果这两件事情操作了共同的数据,就需要干完一件,接着干另一件。

2.第二个问题:读和写?       

          数据是一整块不可分割的东西。在同步的概念里面,写数据和读数据是不同的。两个进程可以同时读取数据,但是两个进程不能同时写,或者一个读,一个写。

3.同步的粒度 :大还是小?     

     同步的粒度也是一个很重要的概念,如果粒度过大,则造成瓶颈,粒度过小则造成了系统的复杂性。这是一个权衡的目标。但是一开始就定义一个大粒度的同步机制,然后再逐步减小粒度是个不错的选择。实际上linux也是这么做的。

4.同步和同时执行 ?      

       同步和同时执行是两种概念。再单核处理器上,同时执行是不可能的,但是还是会有同步的问题。

5.同步何时发生?

          1.中断。

       2.进程调度。

       3.多CPU的同时执行。

6.一些建议

      1.锁的是数据而不是代码。

      2.只有局部变量和只在一个进程中使用的变量不需要锁。

7.死锁。

      死锁产生的原因是两个进程在互相等待。下面的经验很有用,如果有N个锁,请以同样的顺序获取这些锁。

8.一个很好的练习。

      生产者,消费者模型。采用生产者“推”或者 消费者“拉”数据的方式,也许对同步就有了更深刻的认识。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值