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

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

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

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

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

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

4.同步和同时执行?

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

5.同步何时发生?

1.中断。

2.进程调度。

3.多CPU的同时执行。

6.一些建议

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

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

7.死锁。

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

8.一个很好的练习。

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

更多相关文章

  1. Android(安卓)音视频开发(五) -- 使用 MediaExtractor 分离音视
  2. 深入源码分析Handler 消息机制 、Looper、MessageQueue 消息同步
  3. Android(java)同步方法synchronized
  4. Android(安卓)设置TextView自动调整字体大小
  5. Android(安卓)本地缓存开源库 Reservoir 替代SharedPreferences
  6. android同步取得电池状态信息
  7. 【Android(安卓)Developers Training】 96. 运行一个同步适配器
  8. 【Android(安卓)Developers Training】 95. 创建一个同步适配器
  9. android 同步监听输入框,以及电话号码正则表达式!

随机推荐

  1. Android开发笔记(8)——调用子Activity
  2. ## MPAndroidChart-->BarChart-->点击柱
  3. 期末,Android本学期学习总结
  4. 错误:未使用的导入语句 - 导入android.wid
  5. 使用ContentValues插入SQLite DB失败
  6. Android从零开搞系列:自定义View(15)仿天天
  7. 【Android】策略模式封装百度地图路线规
  8. JustWe-WebServer Android上的Http服务器
  9. DialogFragment自定义dialog的位置和大小
  10. Android进阶系列4—从LayoutInflater到se