ios多线程

1.进程
顾名思义,进,正在进行的,程,程序,简单来理解就是正在进行的程序

2.线程
一个进程至少有一条线程,程序运行后会默认开启一条线程,就是‘主线程’,也叫‘UI线程’。它是用来显示、刷新UI界面、监听UI事件的。

一条线程中的任务是顺序执行的,例如迅雷下载电影,一部下载完才会继续下载。

3.多线程
一个进程可以开多个线程,还是迅雷下载电影,它可以下载多部电影,同时下载。

多线程的实现主流有三种,另外一种基于C的,最原始,几乎不用。
NSThread,更加面向对象,简单易用,但缺点是需要手动管理生命周期,使用频率偶尔使用。

GCD,替代NSThread,基于C的,能充分利用设备的多核,自动管理生命周期,使用频率经常使用。

NSOperation,对GCD的重新封装,更加面向对象,多了一些简单实用的功能,自动管理生命周期,使用频率经常使用。

该怎么选择呢?
简单追求安全点的话就选择NSOperation,
大量并发,追求高效就选择GCD

4.同步和异步
同步:一个线程必须等上一个线程执行完了才能执行当前的线程。例如迅雷下载线程必须等待网络连接的线程完成之后才能进行。没有联网,怎么下载电影啊。

异步:线程之间没有先后之分,一个线程不用等待其他线程就可以执行,例如迅雷可以同时开启多条线程,同时下载多部电影。

5.常用方法
dispatch_async
dispatch_barrier_async
dispatch_group_async

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • .一.进程 进程:是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空...
    IIronMan阅读 4,650评论 1赞 33
  • 首先了解单线程:一、单线程的应用,整个应用中只有一个顺序执行流,当执行流在执行某个耗时的操作,或者不能立即完成的任...
    甘哲157阅读 750评论 1赞 8
  • 进程 什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内...
    45b645c5912e阅读 563评论 0赞 5
  • 不知不觉,已经上班两年多了。对于职场的理解,最简单的一点就是为解决问题而生,商业的目的是结果。解决了问题,有了结果...
    麦粒妈妈阅读 236评论 0赞 0
  • 烟雨笼杭城,精心理花草。 千结网一颗,半夜盼明朝。
    大气睿智阅读 243评论 0赞 1

友情链接更多精彩内容