Handker相关知识

来源:互联网 发布:中国造不出圆珠笔知乎 编辑:程序博客网 时间:2024/05/17 02:22

handler内部如何获取Looper的?

使用ThreadLocal,ThreadLocal可以在不同线程间互不干扰的存储并提供数据,通过ThreadLocal可以轻松的获取每个线程的Looper。

Looper的产生?

线程默认是没有looper的,如果需要使用Handler就必须为每个线程创建Looper。主线程ActivityThread被创建时就会初始化Looper,这就是主线程默认可以使用looper的原因。

为啥android子线程不安全却不加锁?

缺点有两个:加锁会让ui访问逻辑变得复杂,其次锁机制会降低ui访问效率,因为锁机制会阻塞某些线程的执行。所以采用单线程模型。

0 0
原创粉丝点击