刷新UI要在主线程(简单记个笔记,加深自我理解)
在iOS中,为什么刷新UI要在主线程呢,因为UIKit框架本身就不是线程安全的,如果多个异步线程同时刷新UI,那么就可能带来问题。
那么为什么苹果没有给UI加锁来解决多线程下的线程安全问题呢,可想而知,加锁不仅额外耗费性能,又会给UI流畅性造成毁灭性后果,所以加锁肯定是不行的。
所以,苹果约定,所有刷新UI的操作都应该在主线程,这也是为什么主线程又叫UI线程的原因。
在iOS中,为什么刷新UI要在主线程呢,因为UIKit框架本身就不是线程安全的,如果多个异步线程同时刷新UI,那么就可能带来问题。
那么为什么苹果没有给UI加锁来解决多线程下的线程安全问题呢,可想而知,加锁不仅额外耗费性能,又会给UI流畅性造成毁灭性后果,所以加锁肯定是不行的。
所以,苹果约定,所有刷新UI的操作都应该在主线程,这也是为什么主线程又叫UI线程的原因。