美文网首页
进程和线程的区别

进程和线程的区别

作者: 乔四儿丶 | 来源:发表于2020-02-26 18:14 被阅读0次

    线程和进程 链接

    概念

    进程是资源分配的最小单位,线程是CPU调度的最小单位

    进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同

    进程的cpu时间段包括:t1 + cpu程序执行时间 + t2

    注: 分配或回收资源(如内存空间、I/O 设备等),即cpu运行环境加载时间t1和cpu保存运行环境配置时间t2

    线程的cpu时间段包括:进程的cpu程序执行时间的一部分

    比如要实现程序A,实际分成 a,b,c等多个块组合而成,程序A得到CPU =》CPU加载上下文,开始执行程序A的a小段,然后执行A的b小段,然后再执行A的c小段,最后CPU保存A的上下文。这里a,b,c的执行是共享了A的上下文,CPU在执行的时候没有进行上下文切换的。这里的a,b,c就是线程,线程是共享了进程的上下文环境,的更为细小的CPU时间段。

    区别

    1. 拥有资源

    进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源

    1. 调度

    线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

    1. 系统开销

    由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。

    1. 通信方面

    线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC。

    进程间通信方式(IPC)

    1. 管道

    在内核中申请一块固定大小的缓冲区,半双工通信,程序拥有读写权限,包括匿名管道(只允许父子进程通信)和命名管道(所有进程都可以通信)

    1. 消息队列

    拥有一个进程向另一个进程发送数据的方法。全双工通信

    1. 信号量

    可以对临界资源进行保护

    1. 共享内存

    关机数据消失

    1. socket

    相关文章

      网友评论

          本文标题:进程和线程的区别

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