linux学习—进程,程序和线程的解释及区别

本文阅读 5 分钟

前言:本篇博客主要包含三个部分,分别为:

  1. 程序,进程和线程的详解
  2. 程序,进程和线程的特征
  3. 进程和线程的区别

ps:本篇博客是博主查看众多相关博客和有关章节的书籍,对其进行总结,会尽可能用最简洁的话语和说明讲清楚这几个知识点。 1.程序:什么是程序呢,一句话来讲就是:程序是一种包含可执行代码的静态文件。 2.进程:进程由程序产生,是动态的,是一个运行着的,要占用系统运行资源的基本单位。 3.线程:定义如下img 举个例子来说:qq代码文件就是程序,电脑打开qq的过程就是进程实现的过程,qq中的多个聊天窗口就是线程。 总结:简单可以理解来说,进程由程序产生,线程由进程产生,进程是系统分配资源的基本单位,进程是cpu调度和分派的基本单元。程序的运行最终是cpu通过调用线程来实现的。

二:程序,进程,线程的特征 程序: 静态性,本身就是一种静态文件。 非独立性:程序不可以独自运行,所以也就没有了异步性和并发性。 永久性:程序是永久性的,但进程是暂时性的。 进程:img 线程: 独立性:和进程一样,都是可以独立运行的 并发性:各个进程之间也是可以并发进行的,但进程之间是互不影响的,倘若一个进程出现问题,则其他的进程不会被影响,但线程因为共享一个进程拥有的资源,所以当一个线程停止时,其他的线程也就不运行了。 线程是比进程还小的可以独自运行的基本单位

三: 进程和线程的区别: 1.进程是系统分配资源的基本单位,线程是系统调度和分派的基本单位。 2.系统产生一个进程消耗的资源远远大于产生一个线程的资源,这也就是为什么线程出现的原因了。 3.进程占用的系统资源比进程多。 4.进程,独立运行互不影响,但线程之间因为共享一个进程的资源,所以是当一个线程坏掉的时候,其他线程也会停止。 5.线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行(但多线程程序处理好同步与互斥是个难点)。 6.进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频繁切换; 7.CPU切换一个线程比切换进程花费小。

总结:简单来说,程序至少有一个进程,进程至少有一个线程。也就是当一个程序要运行时,基本流程会是这样,先将程序加载到内存中,这个时候就会形成进程,系统会分配给进程资源和地址空间,线程之间又会共享进程的资源,最后,系统对线程进行调度和分派,实现程序的运行。

有什么问题,欢迎留言交流!

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_44431280/article/details/99295677
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复