刷新UI要在主線程(簡單記個筆記,加深自我理解)
在iOS中,為什么刷新UI要在主線程呢,因為UIKit框架本身就不是線程安全的,如果多個異步線程同時刷新UI,那么就可能帶來問題。
那么為什么蘋果沒有給UI加鎖來解決多線程下的線程安全問題呢,可想而知,加鎖不僅額外耗費性能,又會給UI流暢性造成毀滅性后果,所以加鎖肯定是不行的。
所以,蘋果約定,所有刷新UI的操作都應(yīng)該在主線程,這也是為什么主線程又叫UI線程的原因。
在iOS中,為什么刷新UI要在主線程呢,因為UIKit框架本身就不是線程安全的,如果多個異步線程同時刷新UI,那么就可能帶來問題。
那么為什么蘋果沒有給UI加鎖來解決多線程下的線程安全問題呢,可想而知,加鎖不僅額外耗費性能,又會給UI流暢性造成毀滅性后果,所以加鎖肯定是不行的。
所以,蘋果約定,所有刷新UI的操作都應(yīng)該在主線程,這也是為什么主線程又叫UI線程的原因。