Please enable Javascript to view the contents

Android基础

 ·  ☕ 1 分钟  ·  🎅 qqnv

为什么Android的UI操作是不安全的

首先要知道什么是线程安全,什么是线程不安全
线程安全:多个线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能直接进行访问直到线程读取完,其他线程才可以使用,不会出现数据不一致或数据污染
线程不安全:就是不采用加锁机制,也就是不提供数据访问保护,可以多个线程同时进行访问,可能产生多个线程先后更改数据造成所得到的数据时脏数据
在Android中,如果有多个线程都在同时更改UI,会造成界面混乱不堪。如果采用加锁机制会降低运行效率,所以Android选择的线程不安全但性能好这个方式。即Android出于对性能的考虑所以UI线程时不安全的。线程不安全带来的问题就是不安全,所以Android设计主线程MainThread为单线程模型。规定只能在主线程中更改UI元素,子线程想更改UI必须通知主线程。这就涉及到了线程间通信,也就出现了Handler消息机制来实现进程间的通信

分享

qqnv
作者
qqnv
Android Developer