一.为什么要在主线程中更新UI,这样做有什么好处?
UIKit中的大部分类都不是“线程安全”的,为了解决这个线程不安全的问题,苹果推荐所有应用程序的UI操作都在主线程中执行,这样就不会出现多个线程同时改变同一个UI控件,还有一个好处就是主线程的优先级高,这就意味着UI的操作优先级高,用户体验更加流畅。
二.GCD与NSOperationQueue的区别?
1.GCD 只支持FIFO 的队列, 而NSOperationQueue可以调整队列的执行顺序。(通过调整权重)
2.NSOperationQueue可以在Operation间设置依赖关系,而GCD不可以。 如果一个Operation依赖另一个Operation所产生的数据的化,你可以设置一个Operation依赖于另一个Operation来实现, NSOperationQueue可以根据依赖关系,可以以正确的顺序执行Queue中的Operation。
3.NSOperationQueue支持KVO。 这就意味着你可以观察任务的状态属性。
时间: 2024-10-07 06:38:11