美文网首页
多线程的基本理解

多线程的基本理解

作者: iOS心安 | 来源:发表于2020-12-02 13:44 被阅读0次

首先我们来了解线程和进程的关系

  • 进程:可以理解成一个运行中的应用程序,是将程序装载到内存中,系统为它分配资源运行,而这种执行的程序就称之为进程。

  • 线程:是进程的基本执行单元,一个进程拥有多个线程。同一个进程中的多个线程之间可以同时执行。

那么有了进程为什么还要线程?以及线程的好处有什么?

进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,它还是会存在一些问题。主要是以下方面:

  • 进程只能在一个时间干一件事,进程只能执行一件事,当它要执行多项事时,就无能为力了。这个时候就需要使用线程来满足这项要求。
  • 进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些工作不依赖于输入的数据,也将无法执行。

从这里可以看出单独只能做一件事的进程效率会很低,就好像我们要做一件事,需要多方面的协助。有听、看、行动等多种行为同时进行,这样效率才会起来,而解决的方法就是要线程来解决。线程就像火车的一节车厢,进程则是火车。车厢(线程)离开火车(进程)是无法跑动的,而火车(进程)至少有一节车厢(主线程)。多线程可以看做多个车厢,它的出现是为了提高效率。

因为要并发,我们发明了进程,又进一步发明了线程。只不过进程和线程的并发层次不同:进程属于在处理器这一层上提供的抽象;线程则属于在进程这个层次上再提供了一层并发的抽象。如果我们进入计算机体系结构里,就会发现,流水线提供的也是一种并发,不过是指令级的并发。这样,流水线、线程、进程就从低到高在三个层次上提供我们所迫切需要的并发!

除了提高进程的并发度,线程还有个好处,就是可以有效地利用多处理器和多核计算机。现在的处理器有个趋势就是朝着多核方向发展,在没有线程之前,多核并不能让一个进程的执行速度提高,原因还是上面所有的两点限制。但如果讲一个进程分解为若干个线程,则可以让不同的线程运行在不同的核上,从而提高了进程的执行速度。

多线程与主线程

  • 主线程:处理UI,所有更新UI的操作都必须在主线程上执行。不要把耗时操作放在主线程,会卡界面。
  • 多线程:在同一时刻,一个CPU只能处理1条线程,但CPU可以在多条线程之间快速的切换,只要切换的足够快,就造成了多线程一同执行的假象。
  • 多线程是通过提高资源使用率来提高系统总体的效率。
  • 我们运用多线程的目的是:将耗时的操作放在后台执行!

本文参考 wuhao丶hazir

推荐阅读下篇文章: 线程的状态和生命周期

相关文章

  • 多线程的基本理解

    首先我们来了解线程和进程的关系 进程:可以理解成一个运行中的应用程序,是将程序装载到内存中,系统为它分配资源运行,...

  • 多线程详解(2)——不得不知的几个概念

    多线程系列文章: 多线程详解(1)——线程基本概念 0. 简介 在多线程中可能会出现很多预想不到的现象,要理解这些...

  • 高并发多线程总结

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

  • Java多线程入门

    对多线程的理解 进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位; 多线程是随着多核CPU...

  • 多线程的基本概念的理解

    模拟耗时操作 耗时操作对UI的影响 : 会卡死UI / 界面 / 主线程 如何解决耗时操作卡死主线程? 使用多线程...

  • 多线程系列

    --------------------多线程-------------------- 你理解的多线程? iOS中...

  • iOS 关于多线程的理解

    一、多线程的基本概念理解(1)进程:可以理解成一个运行中的应用程序,是系统进行资源分配和调度的基本单位,是操作系统...

  • RunLoop

    1.Runloop基础知识 (RunLoop可以理解为就是为多线程而存在的) 1.1 RunLoop基本概念:运行...

  • iOS进阶之多线程管理(GCD、RunLoop、pthread、

    深入理解RunLoopiOS多线程--彻底学会多线程之『GCD』iOS多线程--彻底学会多线程之『pthread、...

  • Metal绘制流程

    Metal的基本绘制流程、多线程渲染参考:Metal多线程渲染

网友评论

      本文标题:多线程的基本理解

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