美文网首页iOS多线程
多线程一些基本概念

多线程一些基本概念

作者: Henry________ | 来源:发表于2021-06-29 23:00 被阅读0次

1、线程进程

1.1 进程

  • 进程是系统资源分配的最小单位,在iPhone中就是一个应用程序;
  • 进程中的任务都是由线程来执行;
  • 进程至少有一条线程,在进程开始执行时默认开启,也就是常说的:主线程;
  • 每个进程的资源、地址空间都是相互独立的(安卓会涉及到多进程开发);

1.2 线程

  • 线程是进程执行任务的基本单元;
  • 进程中线程之间是共享资源和地址空间
  • 进程中至少有一条线程;

1.3 区别与联系

  • 进程之间资源、地址空间相互独立,线程之间资源、地址空间可以共享
  • 单一进程奔溃后,不会影响其他进程;线程奔溃后,进程也会随之奔溃,进程比线程更加健壮;
  • 进程切换时,消耗的资源大,效率高;但涉及共享资源的并发操作只能使用线程;
  • 执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口。但是 线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

2、多线程真相

  • 单核cpu同一时间CPU只能处理1个线程的任务,需要CPU在各个线程中快速切换,造成了多线程执行的假象。而切换的时间单位就是时间片。CPU进行线程切换时需要耗费cpu资源的,所以线程过多的情况下会造成性能的下降。
  • 多核cpu情况下才是真正的多线程执行;

3、iOS中多线程方案

4、线程的生命周期

5、线程池

6、线程和RunLoop的关系

  • runloop与线程是一一对应的,一个runloop对应一个核心的线程,为什么说是核心的,是因为runloop是可以嵌套的,但是核心的只能有一个,他们的关系保存在一个全局的字典里;
  • runloop是来管理线程的,当线程的runloop被开启后,线程会在执行完任务后进入休眠状态,有了任务就会被唤醒去执行任务;
  • runloop在第一次获取时被创建,在线程结束时被销毁;对于主线程来说,runloop在程序一启动就默认创建好了;
  • 对于子线程来说,runloop是懒加载的,需要在使用前进行创建;

7、队列和线程:

  • 任务是在线程中进行执行;
  • 队列进行线程中任务的排序和分发,非执行任务处于挂起状态;
  • 队列分为: 串行队列-同步;并发队列-异步
  • 队列是一种数据结构。在相同复杂度任务- 遵循fifo先进先出的原则;

7.1 串行队列

7.2 并发队列

相关文章

  • 05-多线程(1)

    0708-GCD单例模式 1、概述(01-多线程的基本概念) 多线程如果掌握得不好对一些性能方面的东西会做的不好...

  • iOS 底层 day19 多线程基本概念 GCD线程死锁总结

    一. 关于多线程中的一些基本概念 1. iOS 中有几种多线程方案有哪几种?分别简述一下。 二. GCD 中的一...

  • iOS多线程之 pThread

    前面总结了多线程的基本概念,今天学习总结一下多线程的其中一种实现方案pThread 一、基本概念 pThread(...

  • 高并发多线程总结

    1.多线程基本概念 首先,我们要理解多线程编程,必须清楚几个基本概念:进程——进程是操作系统层面的概念,它是操作系...

  • iOS 多线程之GCD

    目录 GCD的基本概念 Dispatch Queue Dispatch Group 一、GCD的基本概念 多线程的...

  • iOS开发多线程篇--基本概念和创建方式

    目录 一 基本概念 二 OC中的多线程 一 基本概念 多线程按字面意思是同步完成多项任务,提高了资源的使用效率,从...

  • Chapter 10. 多线程

    阅读原文 Chapter 10. 多线程 10.1 多线程概述 基本概念:程序 - 进程 - 线程 程序(prog...

  • 多线程一些基本概念

    1、线程进程 1.1 进程 进程是系统资源分配的最小单位,在iPhone中就是一个应用程序; 进程中的任务都是由线...

  • 2.iOS多线程

    多线程的四种解决方案:pthread,NSThread,GCD,NSOperation 一、多线程的基本概念进程:...

  • iOS - 多线程NSThread的使用

    一、多线程的基本概念: 1. 多线程的原理: 多线程是循环切换执行的 线程执行完毕之后会自动销毁 2. 多线程的优...

网友评论

    本文标题:多线程一些基本概念

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