IOS多线程技术浅谈
多线程的根本目的和优势在于:
(1)充分发挥多核处理器优势,将不同线程任务分配给不同的处理器,真正进入“并行运算”状态;
(2)将耗时的任务分配到其他线程执行,由主线程负责统一更新界面会使应用程序更加流畅,使得用户体验更好;
(3)当硬件处理器的数量增加,程序会运行更快,而程序无需做任何调整.
但是:
很多人以为开多条线程,会提高单个算法本身的执行效率,这是一个典型的误区,它只是并发执行多项任务,在时间片之间快速切换.
目前流行的三中iOS多线程技术,本人还是偏爱GCD( Grand Central Dispatch)来做一些开线程的任务处理,原因很简单:TA是基于C语言的底层API,提供了很多block回调方法,使用起来非常灵活便捷,其提供的底层函数使得我们在处理业务时控制力更加强大!!!!
GCD中最有用的算是串行异步了:
dispatch_queue_t q = dispatch_queue_create("提示信息", DISPATCH_QUEUE_SERIAL);
dispatch_async(q, ^{
NSLog(@"串行异步 %@", [NSThread currentThread]);
});
异步操作会根据进程创建新的线程,而且其执行是有序的,不会影响到主线程才是根本, 哎呀,太晚了,明天再写一个小demo,进一步体会c的强大之处!!!!!