程序、进程、线程、协程

进程:是程序及其数据再计算机的一次运行活动,是一个运行过程,是动态的概念,进程的运行实体是程序。
程序:是一组有序的指令集合,是静态的概念。

进程与程序:
  • 进程是程序的一次执行,属于动态概念,而程序是一组有序的指令,是一种静态概念。但进程离开了程序也就失去了存在的意义。
  • 一个进程可以执行一个或几个程序z反之,同一程序可能由几个进程同时执行。
  • 程序可作为软件资源长期保留,而进程是程序的一次执行过程,是暂时的。进程具有生命期。
  • 进程具有并发性,能与其它进程并发运行。而程序不具备这种特征。
  • 进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。因此,进程具有独立性,但有时进程间又具有相互制约性。

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位。
线程:是进程的一个执行单元,是进程内部的调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。
协程:是一种比线程更加轻量级的存在。一个线程也可以拥有多个协程。协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。

进程与线程:
  • 地址空间:
    线程之间共享进程内的地址空间,进程之间是独立的地址空间。
  • 资源:
    线程共享进程的资源(内存、IO等),进程之间的资源是互相独立的。
  • 执行:
    每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
线程与协程:
  • 切换调度:
    线程最终在内核态完成,用户态应用层使用代码进行简单的现场保护和恢复即可。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容