美文网首页
关于iOS多线程

关于iOS多线程

作者: Levan_li | 来源:发表于2016-06-27 15:30 被阅读77次

背景
首先要说明一下为什么写这篇文章。
多线程编程,从理论上讲并不难,实际操作上也无太多可说的,今天主要是对iOS中可以实现多线程的方法进行一下总结。原因很简单,因为有关多线程的问题,是初中级iOS开发人员面试过程中一定会被问到的,当然这也是iOS编程中的基础知识,实际工作中也经常会用到的。会不会有人问,为什么面试的时候一定会被问到?我只能说,因为某些原因呢,面对初中级iOS开发人员,除了这几个类似的问题,面试官也问不出什么了,这个就只能是由大家去亲身体验了,我只代表我个人看法-_-...这里排出算法,haha

我们这里只说最常用的3种:NSTread,NSOperation,GCD,有的童鞋可能会问,问什么是最常用的3种,难道还有其他的?嘿嘿嘿,当然有,那就是Pthreads,这个不常用,为什么?因为这个Pthreads是需要C语言函数的,今天就不多讨论了,我们只讨论一下上面的3种。

first 那就让我们那大家最常用的GCD来开刀吧,那就让我们来看一下什么是Grand Central Dispatch
GCD 呢是 libdispatch 的市场名称,而 libdispatch 作为 Apple 的一个库,为并发代码在多核硬件(跑 iOS 或 OS X )上执行提供有力支持。简单点说,就是GCD会自动合理地利用更多的CPU内核,(比如你的手机是8核16G啥的,嘿嘿嘿)。而且GCD会自动管理线程的生命周期,对于我们开发来说真是傻瓜式的,只需要告诉它应该干什么就好了。
面试问题,说一下GCD有几种队列方式?简单介绍一下
串行队列////队列中的任务会根据队列的定义 FIFO(先进先出啊)的执行,一个接一个的先进先出的进行顺序执行。
并行队列////这就能用到之前提到的多核了,GCD 会根据系统资源控制并行的数量,所以如果任务很多,它并不会让所有任务同时执行。

说一下GCD有几种任务操作?简单叙述一下
同步(sync)和 异步(nsync)
sync会阻塞当前线程,等到当前任务执行完毕,才会继续往下执行,
nsync则不会阻塞当前线程,会继续执行其他任务。

这么说大家是不是多少有点懵13了,队列是空间上的,任务是时间上的。大家可以亲自在Xcode中nslog点东西,就可以明白了。嘿嘿嘿。

今天就先写到这吧,关于多线程的食物还有很多要写的,还有部分实例代码,但是,突然来活了,你说坑不坑爹,你说气不气人,本大爷好不容易这么有灵感写文章,嘿嘿嘿,先这样了。

相关文章

  • iOS复习之多线程

    关于iOS多线程,你看我就够了iOS多线程--彻底学会多线程使用dispatch_group来进行线程同步 iOS...

  • iOS 关于多线程(GCD)

    一、关于iOS多线程的一些简单操作 链接地址:多线程简介 二、iOS开发多线程篇—GCD的常见用法 主要为:延迟执...

  • 多线程

    关于iOS多线程 https://www.jianshu.com/p/0b0d9b1f1f19 iOS 多线程:『...

  • ios多线程使用

    多线程编程大家肯定不陌生,关于ios多线程的使用的相关技术文章太多,本篇文章也是主要参考部分文章来进行关于ios多...

  • ios多线程的使用

    多线程编程大家肯定不陌生,关于ios多线程的使用的相关技术文章太多,本篇文章也是主要参考部分文章来进行关于ios多...

  • iOS多线程相关面试题

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • 多线程之--NSOperation

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS多线程之--NSThread

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS - 多线程(一):初识

    iOS - 多线程 系列文章 iOS - 多线程(一):初识iOS - 多线程(二):pthread、NSThre...

  • iOS - 多线程(二):pthread、NSThread

    iOS - 多线程 系列文章 iOS - 多线程(一):初识iOS - 多线程(二):pthread、NSThre...

网友评论

      本文标题:关于iOS多线程

      本文链接:https://www.haomeiwen.com/subject/pjvzdttx.html