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