Linux -- 程序 进程 线程 概念引入

news2024/9/21 12:36:11

程序与进程

程序

什么是程序 ???

伪官方 : 二进制文件,文件存储在磁盘中,例如 /usr/bin 目录下 。 是静态。

简单讲

# 我们都学习了语言,比如下面这串代码 👇

print('Hello,Word')

我们将上示代码保存成一个 python 文件,并且并没有执行它,当然了,大家也都清楚,如果执行上示文件( 代 码 ) ,结果也很简单,就是打印 Hello,Word 字样

我们将上示文件保存后,它就是个程序,而且,我们并没有运行它,它呢,就是一个保存在磁盘上的可执行文件~!!!

进程 :

什么是进程 ?

伪官方

✊ 是程序运行的过程,动态,有生命周期及运行状态。

✊ 进程是已启动的可执行程序的运行实例,进程有以下组成部分 :

  • 已分配内存的地址空间

  • 安全属性,包括所有权凭据和特权

  • 程序代码的一个或多个执行线程

  • 进程状态

简单讲 : 以上示 代码为例,

进程就可以认为是上示代码的执行态,就是现在我们将上示代码执行一下,

我们在介绍 程序 的时候,不是说,把代码写出来,不执行只保存嘛,那现在,我们

就把它执行一下,运行起来。

那既然运行起来,肯定就有运行时间,就是多长时间能运行完,就是多长时间能把

那 Hello,Word 显示在公屏上。

当然了,上示代码肯定运行时间特别快,连 1 秒都没有,CPU 运行的快呗~!

那假设,现在来一个 sleep 300 秒 ,那就意味着这个 程序 ( 上示代码 ) 就得运行

5 分钟了,就是这 5 分钟 内 这个程序一直在运行~!!!!

我们解释下 伪官方 中的 运行实例

就比如我们上示的,让代码 ( sleep 5 分钟 ),我们说这 5分钟内 这个程序一直在

运行 ( 一直在运行那它就是一个 进程 )

但是,现在,我们在这 5分钟内 ,又运行了一次 这个程序 ,那意味着什么 ??

意味着,又多了一个进程 ( 尽管第一个 那个 5分钟那个进程还没执行完 )

就是说你运行程序,运行了几次,那它就占几个进程。

所以说,上面说的,本身运行了一个 程序 ( 5 分钟 ),你在这 5分钟内 又运行了

一次,那就是有两个进程。

那这两个程序也都在运行状态中,

所以运行状态中的程序就叫做这个程序的 运行实例 。

程序没啥变化,程序还是那个程序,但是运行了两次,那就意味着有两个进程~!!

程序和进程的区别

  • 程序是静态的,它只是一组指令的集合不具有任何的运行意义

而进程是程序运行的动态过程~!!

  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程

  • 进程还具有 并发性 和 交往性 ,而程序是封闭的~!!

进程与线程

进程是操作系统中分配资源的最小单位~!!!

===>>>

进程呢,它是需要资源的。

前面我们讲了 进程的组成部分,

有分配地址, 所有权凭据和特权,进程状态等~!!

线程是操作系统中最小的执行单位~!!

===>>>

进程还可以继续划分为 好多线程。

一个进程可以有多个线程,但是一个线程不可以有多个进程~!!

线程只能属于某一个进程。

进程与线程的区别

  • 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。

  • 线程不能单独执行(它必须依赖于进程的资源,但是每一个线程都有程序的入口、执行序列以及程序出口它必须组成进程才能被执行。

进程分类

# 进程分类以不同标准可以分好多类,我们主要介绍下 : 父进程,子进程,前台进程,后台进程

父子进程的关系

✊ 子进程是由一个进程产生的子进程,产生子进程的这个进程就叫父进程。

✊ 父进程终止( 结束 ) 子进程自然终止 ~!

前台进程

官方 : 在 shell 提示处理打入命令后,创建一个子进程,运行命令, Shell 等待命令退出,然

后返回到对用户给出提示符。这条命令与 Shell 异步运行,即在前台运行,用户在它

完成之前不能执行别的命令 。

示例

[root@fsw ~]# sleep 300

现在我们要执行上示代码 ( 睡眠 300 秒 )

===>>>

为上示执行结果,会发现,执行完成后,当前页面,什么也干不了~!!

这就是对应着 官方 解释的那句话 -- 用户在完成他之前不能执行别的命令~!

( 我们先使用 ctrl z 终止了进程 ~!! 我们还得执行其它命令呀~!!)

这就是 前台进程~!!

后台进程

官方 : 在 Shell 提示处打入命令,若后随一个 &, Shell 创建子进程运行此命令,但不等待命

令退出,而直接返回到对用户给出提示。这条命令与 Shell 同步运行,即在后台运行。

“后台进程必须是非交互式的” 。

示例

我们继续以 sleep 300 为例,不过这次要在代码后边 添加一个 &

[root@fsw ~]# sleep 300 &

那你就发现了,这次我们就可以执行别的操作~!!!

这就是 后台进程~!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国领先——液力悬浮仿生型人工心脏上市后在同济医院成功植入

2023年2月22日,华中科技大学同济医学院附属同济医院(同济医院)心脏大血管外科团队举办了一场气氛热烈的小规模庆祝活动,魏翔主任、程才副主任、王星宇副主任医师和李师亮医师到场,为终末期心衰患者黄先生“庆生”&…

Java 文本检索神器 “正则表达式”

Java 文本检索神器 “正则表达式” 每博一文案 在我们短促而又漫长的一生中,我们在苦苦地寻找人生的幸福,可幸福往往又与我们失之交臂, 当我们为此而耗尽宝贵的。青春年华,皱纹也悄悄地爬上了眼角的时候,我们或许才能…

Maven工程打jar包的N种方式

Maven工程打jar包 一、IDEA自带打包插件二、maven插件打包2.1 制作瘦包(直接打包,不打包依赖包)2.2 制作瘦包和依赖包(相互分离)2.3 制作胖包(项目依赖包和项目打为一个包)2.4 制作胖包&#xf…

数据结构与算法(二十)快速排序、堆排序(四)

数据结构与算法(三)软件设计(十九)https://blog.csdn.net/ke1ying/article/details/129252205 排序 分为 稳定排序 和 不稳定排序 内排序 和 外排序 内排序指在内存里,外排序指在外部存储空间排序 1、排序的方法分类。 插入排序&#xff…

下拉框推荐-Suggest-SUG

什么是下拉框推荐 在我们使用各种app(飞猪)想要搜索我们想要的东西,假设我想要上海迪士尼的门票,那么精确的query是“上海迪士尼门票”,要打7个字,如果在你输入“上海”的时候app就推荐了query“上海迪士尼…

无线蓝牙耳机哪个牌子好?2023质量好的无线蓝牙耳机推荐

近几年,随着蓝牙技术的不断进步,使用蓝牙耳机的人也越来越多。蓝牙耳机的出现,不仅能让我们摆脱线带来的约束,还能提升我们学习和工作的效率。最近看到很多人问,无线蓝牙耳机哪个牌子好?下面,我…

accent-color一行代码,让你的表单组件变好看

不做切图仔,从关注本专栏开始 文章目录 不做切图仔,从关注本专栏开始前言兼容性语法继承性智能前言 在之前的网站开发中,我们是很难去更改的你某些控件的颜色。我们可能要使用各种技巧来自定义我们的控件。好消息是,今天如果我们想要去改变控件的颜色,css为我们提供了一些…

docker删除已停止的容器

一、docker删除已停止的容器 1、根据容器的状态,删除Exited状态的容器 先停止容器、再删除镜像中的容器、最后删除none的镜像。执行命令如下: docker stop $(docker ps -a | grep "Exited" | awk {print $1 }) #停止容器 docker rm $(docke…

【C++初阶】1. C++入门

1. 前言 1. 什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(…

Python每日一练(20230228)

目录 1. 螺旋矩阵 II ★★ 2. 排列序列 ★★★ 3. 数字 1 的个数 ★★★ 1. 螺旋矩阵 II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3…

java本地搭建宝塔部署实战likeadmin系统vue前端源码 - admin端(二)

大家好啊,我是测评君,欢迎来到web测评。 上一期给大家分享了java版likeadmin的server端本地搭建运行,宝塔部署的方式,今天来给大家分享admin前端vue在本地搭建,与打包发布到宝塔的方法。感兴趣的朋友可以自行下载学习。…

Unity——制作简易红绿灯

效果图与该类红绿灯相似。前提准备首先在场景中,创建一个正方体(灯座),球体(作为灯),把其放置成红绿灯结构。创建四个材质球,基础色分别赋为灰色,红色,黄色&a…

如何彻底删除SQL Server 2008中的登录账号

我个人遇到的最烦人的事情之一是 SQL Server Management Studio中“服务器名称和登录名”对话框的下拉列表。 以下是我想从 SSMS 连接屏幕中删除某些内容的两种情况: 键入的服务器名称不正确 服务器将来不需要。当我看到服务器的名称,它已经存在了很长一段时间,我知道我不会…

gismo中用等几何解决线弹性问题的程序示例---未完待续2023.2.28

文章目录前言一、调用线弹性程序示例1.1 对plateWithHole.xml文件的理解1.2 程序及注释1.3 对边界力函数的理解总结 #pic_center前言 gismo中用等几何解决线弹性问题 一、调用线弹性程序示例 1.1 对plateWithHole.xml文件的理解 算例来自文章:Isogeometric analysi…

操作系统真相还原_第7章:中断

文章目录7.1 中断分类外部中断内部中断7.2 中断描述符表中断门描述符中断描述符表寄存器IDTR中断处理过程中断发生时的栈变化7.3 可编程中断控制器8259A级联8259A8259A的编程7.4 编写中断处理程序中断初始化过程中断执行过程简单的中断处理程序中断处理程序改进思考7.5 8253定时…

PXC高可用集群(MySQL)

1. PXC集群概述 1.1. PXC介绍 Percona XtraDB Cluster(简称PXC) 是基于Galera的MySQL高可用集群解决方案Galera Cluster是Codership公司开发的一套免费开源的高可用方案PXC集群主要由两部分组成:Percona Server with XtraDB(数据…

XXL-JOB

XXL-JOB介绍 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 官网:https://www.xuxueli.com/xxl-job/ 文档:分布式任务调度…

GO中sync 包的 RWMutex 读写互斥锁

文章目录背景RWMutex 简介代码验证多个协程请求读锁 RLock() 和 RLock()读写交错 RLock() 和 Lock()写入的时候读取读取的时候写入请求多个写Lock() 和 Lock()背景 Mutex 互斥锁是严格锁定读和写,如果我们需要单独对读或者写添加锁需要使用 sync包的RWMutex 针对读…

Linux服务器快速安装MySQL数据库

Linux服务器快速安装MySQL数据库 mysql官网下载地址:https://downloads.mysql.com/archives/community/ 推荐使用命令下载安装,比较快 开始安装mysql 1.通过wget下载安装包 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.no…

运动耳机怎样戴不容易掉,运动不容易掉的运动蓝牙耳机推荐

在运动当中总是避免不了大幅度的晃动、跳跃,但是普通的耳机在运动当中佩戴时,耳机会时常出现掉落或者佩戴不牢固的现象发生,下面就给大家分享几款在运动当中佩戴较为稳固的运动蓝牙耳机吧~1、南卡Runner Pro4骨传导蓝牙运动耳机 ¥…