Android input处理机制(四)线程安全

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进程间通信吧,很多基本概念都没有弄清楚。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值