进程和线程的区别是什么

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

进程与线程的区别归纳:

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

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

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

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

(待补充)

其他论点:

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 14,162评论 3 34
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 9,606评论 0 23
  • 表妹对妹夫说我这样好,说弟弟那样好 两个残疾人这脸往哪搁? 三姨三姨夫一来,给我和弟弟一人一百 三四十岁人这脸往哪...
    壹起桐行阅读 3,318评论 0 0
  • 雪花还未绣活凸现的白龙,路面 为何锦丝飘带系着两端,你我 我只轻轻拉动 你就乘梅花鹿奔来 这渺茫的梦,没有疼的感觉...
    忠志_3d7b阅读 1,501评论 0 4
  • 今天是周一,天气晴朗,但气温差有点大,我们还应注意预防感冒。 下午放学回家,吃完饭写作业,发现...
    刘学颖妈妈阅读 858评论 0 0