本文将会从这多个方面探讨NSOperation类和NSOperationQueue类的相关内容 一、简介 NSOperation的是iOS2.0推出的,通过NSThread实现的,但是效率的确一般。 从OS X10.6和iOS4推出GCD时,又重写了NSOperation和NSOperationQu ...
分类:
其他好文 时间:
2018-11-24 11:25:02
阅读次数:
187
概述 NSThread类是一个继承NSObjct类的个轻量级的类。但需要管理线程的生命周期、同步、加锁等问题,这会导致一定的性能开销。 使用NSThread类可以让某个OC方法在特定的线程中被调用。当需要执行一个冗长的任务,并且不想让这个任务阻塞应用中的其他部分,尤其为了避免不阻塞app的主线程(因 ...
分类:
其他好文 时间:
2018-11-15 18:25:48
阅读次数:
202
在一个进程中,线程往往不是孤立存在的,多个线程之间要经常进行通信,成为线程间的通信。 线程间的通信主要体现在,一个线程执行完特定任务后,转到另一个线程去执行任务,在转换任务的同时,将数据也传递给另外一个线程。 NSThread类提供了两个比较常用的方法,用于实现线程间的通信,这两个方法的定义格式如下 ...
分类:
编程语言 时间:
2018-11-08 18:24:32
阅读次数:
201
思考:现在有多个线程异步执行,我们想要同时最多只能执行2个或n个,该怎么办? dispatch_semaphore_t 看代码解析: 看打印结果: 解析: 这里有4个线程异步执行,正常情况下,是同时执行的,不分先后; 这里将信号量设为2,说明同时只能执行2个任务。 代码执行到任务1,信号量-1,这时 ...
分类:
移动开发 时间:
2018-10-16 15:56:18
阅读次数:
207
一、原书第一版154页开始讲解串行队列、并发队列、以及在Dispatch_Async、Dispatch_Sync下面的作用 最后一段代码: 代码如上面,最后输出的数字代表执行顺序。书中最后说顺序会输出两个结果,12345、12435、3一定会在4之前被打印出来 看到这里觉得有些不对,写了代码试了一下 ...
分类:
移动开发 时间:
2018-10-09 23:10:56
阅读次数:
227
概述 早上起床,你先打开洗衣机,然后用热水把泡面泡上,接着打开电脑开启一天的码农生活。其中“洗衣服”、“泡泡面”和“码代码”3个任务(线程)同时进行,这就是多线程。网上有许多关于多线程的经典解释,此处就不再菜鸟弄斧了,以免贻笑大方。当今流行于世的系统基本都会提供多线程这项基本功能,iOS也不例外。其 ...
分类:
编程语言 时间:
2018-08-10 13:11:53
阅读次数:
175
- (void)forDemo{ //全都是在主线程操作的 for (NSInteger i = 0; i{number = 1, name = main} 2018-06-27 11:33:44.226845+0800 5线程操作-GCD-快速迭代[7715:77291] --{number = ... ...
分类:
编程语言 时间:
2018-06-28 10:59:10
阅读次数:
198
目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述。 多线程的基本概念 线程的状态与生命周期 多线程的四种解决方案:pthread,NSThread,GCD,NSOperation 线程安全问题 NSThread的使用 GCD的理解与使用 NSOperatio ...
分类:
移动开发 时间:
2018-06-20 13:05:18
阅读次数:
210