• IOS 多线程(1) --基础知识


    进程+线程+多线程

    - 进程:

    1.定义:进程是指在系统中正在运行的一个应用程序,所以说一个应用程序只有一个进程,比如你打开ppt系统就会新建一个进程,再打开一个酷狗音乐播放器系统又会新建一个进程
    2.每个进程之间是相互独立的,运行在其专用的且受保护的空间内
    3.一个进程至少有一个线程,进程只是在内存中分得一份空间,但是进程并不能执行任务,真正执行应用任务的是线程。

    - 线程

    1.一个进程想要执行任务必须有一个线程
    2.线程是进程的基本单元,一个进程所有任务都再线程中执行(和上面一些基本一个意思)
    3.一个线程中的任务执行是串行的,也就是说在同一时间内,一个线程只能执行一个任务,如果在一个线程里放多个任务的话,那也只能一个一个的执行

    - 多线程

    1.一个进程可以开多个线程,每个线程可以并行执行不同的任务,但是这里的并行并不是代表在同一时间多个线程一起在跑(语言可能不准确,意思差不多,下面有解释)
    2.多线程的原理

    • 同一时间,CPU只能处理一个线程,只有一个线程工作。
    • 多线程并发执行,其实是cpu在多条线程之间进行快速的切换执行,打个比方,第一秒时候cpu执行线程1,一秒末线程1被暂停,cpu继续执行线程2的任务,再过一秒又回去执行1,如果cpu以极快的速度在进程之间切换,就会让人感觉所有线程是在一起同时进行的。
    • 但是是不是线程越多越好呢,当然不是,cpu在线程之间来回快速切换会消耗大量资源,线程太多会使cpu承受相当大的压力。

    3.多线程的优点

    • 能适当提高程序的执行效率
    • 能提高系统资源的利用率

    4.多线程的缺点

    • 开启线程会占用一定内存空间,默认情况下主线程占1M,子线程512k,降低程序的性能
    • 线程越多CPU在调度线程上资源开销越大

    5.多线程的应用

    应用在开发的过程中,经常会遇到一些比较耗时的操作,比如下载一个文件,可能需要几秒,几分钟,甚至几小时。如果你把这个任务放在主线程,那么在你下载的时间内用户无法与应用再交互了,这里提一下主线程的作用, 主线程主要作用是显示和刷新UI和一些UI操作,所以当你下载需要1分钟的话,在这一分钟里屏幕几乎就是死的,无法操作无法刷新,当然不符合人们的正常需求,所以要把这些耗时操作放到子线程里,让主线程继续能执行界面刷新和响应用户操作的任务。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    ASP.NET(C#)图片加文字、图片水印
    CMake构建Visual Studio中MFC项目的Unicode问题
    用Visual Studio 2008(VS)编译WebKit的r63513
    此时学习中
    ASP.NET进阶——初学者的提高(长期)
    继续努力
    程序员阿士顿的故事
    iOS 深拷贝和浅拷贝
    Javascript中this的取值
    Lisp的本质(The Nature of Lisp)
  • 原文地址:https://www.cnblogs.com/yuqingzhude/p/4836541.html
Copyright © 2020-2023  润新知