Android input处理机制(四)线程安全
2014-01-13 16:40
260 查看
1.我的疑问
我很好奇,好奇为什么只有InputReaderThread单一线程维护事件和设备并且其持有InputReader对象又是单例,但却需要在多数方法中使用了AutoMetux来加强线程安全。2.探索发现
1.原因是我还并没有真正理解Android的Metux,同一个Metux对象可以锁定多段代码,而不仅仅锁定一个函数或一个代码块那么简单。2.InputReader对象一些私有方法会生成(写操作)一些设备信息及其他相关信息运行在InputReaderThread线程中,而InputReader对象提供许多public方法方便其他线程获取这些信息,为了保证其他线程能够获取到正确的信息,写入时不能读取,反之亦然。所以我们需要Metux互斥量。这就是为什么只有一个写线程还需要加锁,因为有其他线程在读取一些信息。
3.android /frameworks /.../utils 下有 Thread和Metux相关内容,在android源码环境下进行多线程编程,可考虑使用。其实,frameworks下实现的Thread和Metux均封装pthread库实现的。
4.我觉得还是先阅读APUE,Unix进程间通信吧,很多基本概念都没有弄清楚。
相关文章推荐
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第二版)
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- android调用摄像头偷拍demo 无声 无预览 一件拍照存储
- 点滴:Android BroadcastReceiver【转】
- Android 4.4(KitKat)中的设计模式-Graphics子系统
- Windows XP、Cygwin、NDKr5b编译Android下的ffmpeg
- Android中获取系统内存信息以及进程信息
- android.os.networkonmainthreadexception
- android 电话状态的监听(来电和去电)
- Android高级应用开发(基础篇) - stage6 - 学习笔记(上)
- android java 在sd卡中创建文件
- Android安装卸载Apk的接口
- Android源码下载及开发环境的搭建
- android 让一个控件按钮居于底部的几种方法
- android 调用设置页面开启gps
- 恢复 android logcat 不输出
- android 4.3源码下载【自己下载成功的步骤、其中遇到很多你可能会遇到的很多问题】
- Android input keyevent
- android替换fprintf使得打印可以输出到logcat中
- Android 解析JSON