iOS底层探索之多线程(三)——初识GCD

这是我参加8月更文应战的第11天,活动概况查看:8月更文应战

回顾

在前两篇博客,现已介绍了进程线程,还介绍了自旋锁互斥锁等相关内容,在线程的几种状况 iOS 开发中,运用最多的还是 GCD,那么苹果x从本篇博客初步将连续介绍 Gios8备忘录CD相关的内容。

i苹果OS底层探求之多线程(一)—进程和线程

iOS底层探求之多线程(二)—线程和线程是什么意思

1. 什么是 GCD

GCD界说

Grand Center Dispatch简称GCD,是苹果公司多线程使用场景比方开发的技术,以优化使用程序支撑多核心处理器。

  • C言语,供给线程是什么意思了非常多等候的函数。
  • GCD是苹果公司为多核的并行运算出的解决方案。
  • GCD会主动运用更多的Cios8备忘录PU内核(比方双核、四核) ,GCD会主动处理线程的生命周期(创立线iOS程、调度使命、毁掉线程)
  • 程序员只需求奉告GCD想要实施什么使命,不需求编写任何线程处理代码。

GCD将使命添加到部队,并且指定执⾏使命的函数

GCD作业原理

GCD的两个核心:使命部队

2. 使命和部队

使命:需求实施什么操作
程序员是做什么的:用来寄存使命的

GCD运用的两个过程:创立使命、多线程将使命添加到部队

  • 创立使命:承认要做的作业
  • 将使命添加到部队中
    • GCD会主动将部队中的使命取出来,放到对应的线程中去实施。
    • 使命的取程序员计算器出遵照 FIFO准则:先进线程先出,后进后出。

iOS底层探究之多线程(三)——初识GCD

串行部队

串行部队(Serial Dispatch Queue),使命一个接着一个的实施,一个使命实施结束后,再实施下一个使命,串行部队是次第实施的。

  • 串行部队示意图:

iOS底层探究之多线程(三)——初识GCD

并发部队

并发部队(Concur多线程形式有什么效果r苹果13手机价格和图片ent Dispatch Queue),可以让多个使命并发(一同)实施,主动打开多个线程一同实施使命。

并发功用只要在异步(dispatch_ios体系async)函数下才有用。

  • 并发部队示意图:

iOS底层探究之多线程(三)——初识GCD
并发部队,先调度实施程序员的不一定先实施结束,程序员计算器这和 CPU分配的时线程刻有联络,还和使命的大小有关,在分配的时刻内没有结束,CPU:老铁你先靠边站会,ios模拟器让下一个哥们先实施,下次分配到你时刻再继续实施吧。

3. 函数

  • 使命运程序员一分钟自我介绍block封装
  • 使命的block没有参数也没多线程的完成方式有返回值
  • 实施使命的函数

异步dispatch_async

  • 不必等候其时句子实施结束,就可以实施下一条句子
  • 会打开线程实施 block的使命
  • 异步是多线程的代名词

同步dispatch_sync

  • 有必要等候其时句子实施结束,才会多线程实施下一条句子
  • 不会打开线程
  • 在其时实施bloc线程池创立的四种k的使命

(1) 让程序平行排队的特定使命,根据可用的处理资源,组织他们在任何可用的处理器核心上实施线程池原理使命 。

(2) 一个ios15线程池务可以是一个函数,是一个闭包体GCD的底层此意使 用线程完成的,不过这样可以让程多线程下载序员不必注重完成的细节。

(3) GCD中有必要要运用的是各种部队,我们遇过block,把详细的代码放到部队中,部队中的使命排队实施,体系会主动的把部队中的详细使命分配到详细的线程中和CPU中(如果是多核处理器),详细创立多少个线程,分配到哪个线程都是由体系处理

更多内容继续更新

喜欢就点线程池个赞吧

觉得有收成的,可以ios15来一波线程池,保藏+注重,评论 + 转发,以免你下次找不到我

欢迎我们留言沟通,批评指正,互相学习程序员薪酬一般多少,前进自我

发表评论

提供最优质的资源集合

立即查看 了解详情