美文网首页
iOS 线程.进程.多CPU.多核

iOS 线程.进程.多CPU.多核

作者: Cocojiang | 来源:发表于2020-03-21 14:20 被阅读0次

    线程的定义:

    线程是进程的基本执行单元 一个进程的所有任务都是在线程中执行。

    进程要执行任务 必须有线程,进程中至少要有一个线程

    进程的定义:

    进程是系统中运行的一个程序

    每一个进程都是独立的 没个进程运行其专用的切受保护的内存中

    区别:

    地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间.

    资源拥有:同一进程内的线程共享本进程的资源如内存,I/O,CPU等,但是进程之前的资源是独立的

    一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉.所以多进程要比多线程健壮.

    进程切换时,消耗的资源大,效率低.所以设计到频繁的切换时,使用线程要高于进程.同样如果要求同时进行又要共享某些变量的并发操作,只能用线程不能用进程

    执行过程:每个独立的进程有一个程序运行的入口,顺序执行序列.但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制.

    线程是处理器调度的基本单元,但是进程不是.

    cpu架构和工作原理:

    计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU)。cpu的根本任务,就是执行指令,对计算机来说,都是0,1组成的序列,cpu从逻辑上可以划分为3个模块:控制单元、运算单元和存储单元。这三个部分由cpu总线连接起来。

    CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去。

    多核cpu和多cpu:

    多cpu的运行,对应进程的运行状态;多核cpu的运行,对应线程的运行状态。

    对于多核cpu,进程中的多线程并行执行,执行过程中存在线程切换,线程切换开销较小。对于单核cpu,多线程在单cpu中并发执行,根据时间片切换线程。同一个线程同一时间段只能在一个cpu内核中运行,如果线程数小于cpu内核数,那么将有多余的内核空闲

    相关文章

      网友评论

          本文标题:iOS 线程.进程.多CPU.多核

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