iOS多线程编程技术之NSThread、NSOperation、GCD

news/2024/7/4 13:19:35

iOS有三种多线程编程的技术,分别为:
(一)NSThread
(二)NSOperation
(三)GCD
这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。

三种方式的优缺点介绍:
1)NSThread
优点:NSThread比其他两个轻量级
缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销

2)NSOperation
优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。
Cocoa operation相关的类是NSOperation,NSOperationQueue。
NSoperation是个抽象类,使用它必须用它的子类,可以实现它或者使用它定义好的两个子类:NSInvocationOperation和NSBlockOperation。
创建NSOperation子类的对象, 把对象添加到NSOperationQueue队列里执行。

3) GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。在iOS4.0开始之后才能使用。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。现在的iOS系统都升级到6了,所以不用担心该技术不能使用。


http://www.niftyadmin.cn/n/3889661.html

相关文章

php取整v,php取整及四舍五入的例子-php iconv 函数转换gb2312编码时...-php iconv使用要注意的问题_169IT.COM...

php中使用iconv进行编码转换时的写法:iconv( "UTF-8", "gb2312//IGNORE" , $FormValues[a])。ignore 忽略转换时的错误。iconv在转换字符"—"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无…

关于Ant.design的RangePicker日期范围限制的实践(限制当前日期之前日期可选)

博主接到一个需求,要求限制日期范围,其要求如下: 限制起始时间和结束时间的范围不超过1个月,且限制起始时间和结束时间都不能大于当前日期减去2天(即T-2) 查阅了官方文档和一些博主的文档,最后…

TCP连接中time_wait在开发中的影响-搜人以鱼不如授之以渔

根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致…

ios打包上架错误1、Unable to process application at this time due to the following error: Missing Provisioni

由于以下错误,此时无法处理应用程序:缺少供应配置文件 - 应用程序必须在名为embedded.mobileprovision的文件中包含供应配置文件。 解决方法:https://blog.csdn.net/ducp123/article/details/83109111

压力测试分析

1.从压力测试说起 压力测试的理解,xxx的性能10w/s,对你有意义么? 没有那家卖瓜的会说自己家的不甜,同样,没有哪个开源项目愿意告诉你在对它条件最苛刻的时候压力情况是多少,一般官网号称给你看的性能指标都…

matlab最优轨迹规划,matlab机器人轨迹规划

运动仿真 $ %" 运动仿真( ’)在对上述规划轨迹进行仿真前, 先输入机器 人的参数, 并命名 -$.$/&&)” 命令如下: “ A 连杆的前四个元素依次为 "......PUMA560的 MATLAB 仿真要建立 PUMA560的机器人对象, 首先我们要了解 PUMA560的...如果有了关节的轨迹规划…

antd pro react项目 umi dev 修改默认端口号mac和windows

windows "dev": "set PORT8081 && npm run start:dev", // 8081生效 "start": "set PORT8080 && umi dev", // 8080不生效正确的写法是 "dev": "set PORT8081 && npm run start:dev", …

ionic 插件安装

ionic 插件安装 安装本地已有插件 cordova plugin add Your_Plugin_Path --variable APP_KEYyour_jpush_appkey 或直接通过 url 安装: cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable APP_KEYyour_jpush_appkey 通过 Cordov…