多线程
FreeTourW
这个作者很懒,什么都没留下…
展开
-
如何使用GCD
GCD:苹果公司开发的技术 以优化应用程序支持多核处理器和其他的多核处理系统。 GCD:函数级的多线程 性能更高 功能更强大。串行队列//1.获取串行队列 //1.)使用系统创建好的串行队列 往队列里添加的任务是在主线程中完成 dispatch_queue_t queue1 = dispatch_get_main_queue(); //2.)自己创建队列 线程同步原创 2016-06-17 23:12:15 · 556 阅读 · 1 评论 -
多线程
进程和线程:原创 2016-09-08 00:25:52 · 241 阅读 · 0 评论 -
计时器(验证码倒计时)
__block int timeout = 60; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0原创 2016-05-26 17:07:42 · 595 阅读 · 0 评论 -
NSOperation与performSelectorOnMainThread
在多线程操作中,有一个著名的错误,叫做“Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread”,一旦出现这个错误,程序会立即crashed。这是由于转载 2016-09-21 21:53:22 · 302 阅读 · 0 评论 -
多线程编程1 - NSThread
每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。下面根据抽转载 2016-09-25 17:17:12 · 222 阅读 · 0 评论 -
多线程编程3 - NSOperationQueue
一、简介一个NSOperation对象可以通过调用start方法来执行任务,默认是同步执行的。也可以将NSOperation添加到一个NSOperationQueue(操作队列)中去执行,而且是异步执行的。创建一个操作队列:[java] view plain copyprint?NSOperationQueue *queue = [[NSOp转载 2016-09-25 17:23:09 · 234 阅读 · 0 评论 -
多线程编程2 - NSOperation
一、NSOperation1.简介NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocationOperation和NSBlockOpera转载 2016-09-25 17:25:22 · 225 阅读 · 0 评论 -
GCD导致死锁的原因和解决方案
GCD提供了功能强大的任务和队列控制功能,相比于NSOperationQueue更加底层,因此如果不注意也会导致死锁。所谓死锁,通常指有两个线程A和B都卡住了,并等待对方完成某些操作。A不能完成是因为它在等待B完成。但B也不能完成,因为它在等待A完成。于是大家都完不成,就导致了死锁(DeadLock)。有一定GCD使用经验的新手通常认为,死锁是很高端的操作系统层面的问题,离我很远,一般不会转载 2016-12-07 20:34:42 · 897 阅读 · 0 评论