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

进程和线程的区别是什么

作者: 住在海边的人_ | 来源:发表于2018-09-15 23:18 被阅读7次

    进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以包含多个线程,线程又叫做轻量级进程。

    进程与线程的区别归纳:

    a.地址空间和其他资源:进程间相互独立,拥有独立内存,进程是资源分配的基本单位;线程隶属于某一进程,且同一进程的各线程间共享内存(资源),线程是cpu调度的基本单位。某进程内的线程在其他进程中不可见。

    b.通信:进程间相互独立,通信困难,通信IPC方法有:管道,信号,套接字,共享内存,消息队列等,线程间可以直接读写进程数据段(如全局变量)来进行通信--需要进程同步和互斥手段的辅助,以保证数据的一致性。

    c.调度与切换:线程上下文切换比进程上下文切换要快的多。进程间切换要保存上下文,加载另一个进程;而线程则共享了进程的上下文环境,切换更快。

    d.在多线程os中,进程不是一个可执行的实体

    (待补充)

    其他论点:

    进程是资源分配的单元,线程是独立运行和调度的基本单位;进程是运行中的程序,线程是进程内部的一个执行序列;进程拥有的资源多,线程拥有的资源少;多个线程共享进程的资源;进程间切换代价大,线程间切换代价小

    进程和线程的主要差别在于它们是不同的操作系统资源管理的方式。进程拥有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响;线程只是一个进程中的不同执行路径,线程有自己的堆栈和局部变量(在运行中必不可少的资源),但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程???

    进程间通信(IPC,interProcess Communication):是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道),消息队列,信号量,共享存储,Socket,Streams等,其中Socket和Streams支持不同主机上的两个进程IPC。

    相关文章

      网友评论

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

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