ios--多线程复习笔记

原文摘自:www.51cto.com,视频连接http://edu.51cto.com/lesson/id-13922.html


1、什么是多线程?

在线视频播放器:

  •  从网上下载对应视频数据;
  • 播放这些数据
同一时间,让多个代码语句同时执行。

2、多线程的好处:
  •  提高应用程序的感知响应;
  •  提高应用程序在多核系统上的实时性能。
3、ios中多线程技术:
  1. NSThread (几乎不用)
  2. NSOperation (主要用于网络下载
  3. GCD (Grand Central Dispatch)
4、GCD是苹果公司提供的一套并发解决方案,用于ios4以上。
      其工作原理:把任务放到对应队列中,根据可用的处理资源,安排这些任务在任何可用的处理器核心上执行。
     一个任务可以是一个函数function或一个 block(用得更多)。
     GCD中队列称为dispatch queue,它可以保证先进来的任务先得到执行。

5、dispatch queue分类:
  • main dispatch queue :用于执行所有与UI操作相关的任务,在主线程中执行。宏dispatch_get_main_queue()
  • global dispatch queue:可以并发地执行多个任务,但是执行完成的顺序是随机的,用于执行后台任务。函数dispatch_get_global_queue(0,0)。
  • 自定义的dispatch queue : 用于执行和UI操作无关的任务。一次只执行一个任务,而且是按顺序执行的。
提交任务到dispatch queue分为同步提交void dispatch_syno 和异步提交void dispatch async。

6、典型的应用情景:
    为了避免界面在处理耗时的操作时卡死,比如读取网络数据,IO,数据库读写等,我们会在另外一个线程中处理这些操作,然后通知主线程更行界面。

   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
       //耗时的操作

     dispatch_async(dispatch_get_main_queue(),^{
       //更新界面UI的操作
 
     });
});
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值