美文网首页
IOS 多线程整理(超乱)

IOS 多线程整理(超乱)

作者: 隔壁班小明 | 来源:发表于2017-09-04 16:27 被阅读36次

首先我们先整理几个概念。ps: 都是个人的想法很多地方有些不对,在慢慢修改吧,这应该是一个认识的过程。所以这里很多东西也许是错的,大家自己验证就好
进程;一个程序有一个进程,我们可以简单的理解一个APP在运行的时候,就对应了一个进程。
线程:是程序运行的一个东西。网上给的定义是程序运行的最小单元。

当一个程序运行了,那么他就一定有一个线程在我们iOS中叫做主线程,我们所做的操作默认都是在这个主线程里的。
线程中有一个runloop简单点说就是一个死循环,有了这个是循环才能保证我这个程序一直存在不然,就和我们使用playground写代码或者写简单的c方法一样运行完代码就结束了。

说回多线程 :多线程分成两种情况真的多线程和假的多线程,这个东西和cpu有关(太远了我们不说)。我们都是假的多线程。
什么是假的多线程,举个例子有两条线程,每条线程中都有10条处理,额10个nslog语句这样比较好理解。那么他们运行是应该是什么样子呢? 如果不明白的话可能会说两个一起在执行。其实不是他们一一段一段的被执行只是两者之间切换太快我们察觉不错来。

多线程.png

以上是我对于多线程的理解。下面我们说说IOS中最常用的多线程GCD

说GCD我们就要说一个东西Queue队列,我们做的操作都是对队列进行操作。
队列有两种,一种是串行队列,一种是并行队列
1.串行队列是指队列只有一条线程,我们加入的代码都是顺序执行的。
2.并行队列是指队列会有多条线程,我们没加入一个代码块都可能创建一个新的线程。
怎么说可能呢? 因为在使用GCD时会让我们选择是async(异步)或者sync(同步).当你使用同步是那么它的执行就是顺序的而且使用的线程是你当前的线程。使用异步时才会每一段代码开辟一个线程。
3.上面说的sync(同步) 没什么好说的了,都是把代码加入到当前的线程中按顺序执行的。
4.async(异步): 和当前线程不是同一个线程,你使用串行队列,就会新开一条线程。使用并行队列就可能是多开很多条线程。

相关文章

  • IOS 多线程整理(超乱)

    首先我们先整理几个概念。ps: 都是个人的想法很多地方有些不对,在慢慢修改吧,这应该是一个认识的过程。所以这里很多...

  • 超全!整理常用的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有四种多线程 1.Pthreads2.NST...

  • iOS开发常用之博客

    开发博客列表 唐巧整理 - 猿题库唐巧整理。 11个超棒的iOS开发学习国外网站 - 11个超棒的iOS开发学...

  • iOS面试题总结整理(附答案-持续更新)

    iOS面试题总结整理(附答案) 多线程的实现方式;iOS中实现多线程的方案有4种 延迟执行的几种方式;延迟1秒执行...

  • iOS多线程

    #iOS多线程学习&总结 在查阅资料文档,系统得重新审视了下iOS多线程。下面是自己结合资料做的一些整理,比较偏基...

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

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

网友评论

      本文标题:IOS 多线程整理(超乱)

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