IOS 利用多核运算-GCD开发

本文介绍了iOS中利用GCD进行并发编程,强调了GCD在处理多核运算的优势,通过示例展示了如何将耗时操作如图片加载放入后台队列,避免阻塞主线程,从而提高应用性能和用户体验。
摘要由CSDN通过智能技术生成

 

IOS 利用多核运算-GCD开发

 

 

by Jhorn Han

 

 

多核运算

 

在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单。它把任务分派到不同的queue队列

来处理。开发者把任务代码装到一个个block里面,操作系统把这些任务代码分派到不同的资源里去处理,一个简单的例子来说,为什么初学

者写tableview的时候,滑动列表时总会很卡,因为很多初学者把图片装载放到main thread主线程去执行,例如我们要滑动畅顺的话,iOS最快可以1秒内刷新60次,如何你的一个cell的文字和图片装载超过1/60秒的话,自然就会卡。所以一般我们会把图片装载这些需要多点时间的移出main thread来处理,对于用GCD来说,就是把图片载入放到另外一个queue队列中来异步执行,当资源准备好了后,放回到main thread中显示出来。main thread在GCD中就是main queue。


创建一个新queue队列的代码:


备注:


单核中的多线程实际上在每个时间片上只有一个线程在运行,而多核实际上是真的多线程,每一个时间片上每个核都有一个线程在执行。

 

dispatch_async是多核级别编程框架调度函数,

 

耳 _beginThread. NSThread, performSelectorInBackground...等只是等只是一般线程调度而已,没有利用CPU多核的特性。GCD以后,苹果不提倡使用老式的线程调度了,都用queue。dispatch_async可以把block里面的任务扔到另外一个核了处理,

 

performSelectorInBackground _beginThread. NSThread, performSelectorInBackground 不能把任务扔到另外一个核去处理

 

 


代码:

 

从网络加载图片现实到UIImageView,解决了多个cell显示图片在滑动tableview 出现卡的情况

 



 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值