自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 C++ 多态及多态原理

一、多态的概念多态:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态 。1. 多态的定义及实现多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。多态构成的条件: 前提:继承必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写class Person{public: //虚函数 virtual void BuyTicket() { cout << "全票" &lt

2021-08-30 16:56:19 720 5

原创 复杂的菱形继承及菱形虚拟继承

单继承:一个子类只有一个直接父类时称这个继承关系为单继承多继承:一个子类有两个或以上直接父类时称这个继承关系为多继承菱形继承:菱形继承是多继承的一种特殊情况。菱形继承的例子:class Person{public: string _name; // 姓名};class Student : public Person{protected: int _num; //学号};class Teacher : public Person{protected: int _id;

2021-08-27 14:59:25 212

原创 C++ 面向对象之继承

文章目录一、继承的概念及定义1.继承的概念2.继承定义二、一、继承的概念及定义1.继承的概念继承机制:面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。原有的类称为父类或基类,而继承了该类的类称为子类或派生类。2.继承定义继承格式:class [派生类名] : [继承方式] [基..

2021-08-27 10:19:28 376 1

原创 C++的强制类型转换

隐式类型转化:相关类型的转换,即意义相似的类型。强制类型转化:不相关类型的转换,比如:指针和整型.static_cast用法:static_cast<类型说明符> (变量或表达式)作用:显式、静态地执行隐式类型转换和用户定义的转换,不进行运行时检查。分类:用于基本类型数据的转换 float a = 2.3; int b = static_cast<int>(a);把空指针转换成目标类型的空指针把任何类型的表达式转换为void类型父类指针/引用到子类指.

2021-08-26 11:16:02 617 3

原创 C++ 特殊类的设计(单例模式)

1.请设计一个类,只能在堆上创建对象实现方法:将类的构造私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建class HeapOnly{public: //在堆上创建对象 static HeapOnly* HeapCreate() { return new HeapOnly; }private: //构造函数私有 HeapOnly() {} //防拷贝 HeapOnly(const HeapOnly

2021-08-25 16:49:23 356 4

原创 C++11 智能指针

智能指针的原理RAIIRAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源。 借此,我们实际上把管理一份资源的责任托管给了一个对象。这种做法有两大好处:不需要显式地释放资源。采用这种方式,对象所需的资源在其生命期内始终保持有效。我们使用RAII的思想设计Smart

2021-08-19 23:56:40 1295 2

原创 LeetCode 146.LRU缓存机制

刷题链接:LRU缓存机制题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限

2021-08-17 11:40:19 98

原创 C++11 右值引用

C++98中提出了引用的概念,引用即别名,引用变量与其引用实体公共同一块内存空间,而引用的底层是通过指针来实现的,因此使用引用,可以提高程序的可读性。右值与左值的区分:左值:普通类型的变量,因为有名字,可以取地址,都认为是左值。如果表达式运行结果或单个变量是一个引用则认为是左值。右值:常量临时变量/匿名变量将亡值:将要被释放的值一、引用与右值引用比较1. 普通引用只能引用左值,不能引用右值;const引用可以引用左值,也可以引用右值 //普通引用 int a = 10;

2021-08-13 01:06:23 518

原创 超详细的HTTP协议

文章目录HTTP协议是什么?HTTP协议格式请求行请求方法URL协议版本HTTP0.9HTTP1.0HTTP1.1长连接管道机制分块传输HTTP2.0响应行头部Cookie与SessionCookieSessionCookie与Session的区别空行正文简单的http服务器的搭建输入URL后发生了什么HTTP协议是什么?HTTP:超文本传输协议。HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的.

2021-06-26 23:17:06 921 1

原创 Linux网络编程 | Socket编程:TCP服务器单执行流、多线程、多进程的实现

文章目录TCP协议TCP通信流程Socket相关接口TCPSocket的封装TCP协议TCP协议:传输控制协议特性:面向连接,可靠传输,面向字节流应用场景:安全性要求大于实时性要求的场景---文件传输TCP通信流程Socket相关接口1.创建套接字int socket(int domain, int type, int protocol);2.绑定地址int bind(int sockfd, struct sockaddr* addr, socklen_t len);3..

2021-06-25 09:23:21 332 2

原创 Linux网络编程 | Socket编程:UDP服务端/客户端的实现

udp协议

2021-06-24 11:19:39 446 1

原创 【笔试题】 走方格的方案数 C++

题目本题链接:走方格的方案数请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路, 即:只能往右和往下走,不能往左和往上走。输入描述:每组样例输入两个正整数n和m,用空格隔开。(1≤n,m≤8)输出描述:每组样例输出一行结果示例:解题思路:本题可以采用递归的思想,通过从右下角走到左上角来解决问题。当从右下角,到达左上角:就是从1位置,到达左上角的路径数+2位置到达左上角的路径数。f([m][n])

2021-06-18 20:34:20 737 6

原创 【笔试题】 另类加法 C++

题目本题链接:另类加法给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。测试样例:解题思路:本题可以通过位运算实现,两个数求和其实就是求和后当前的数据(不算进位)+两个数求和的进位。例如:1 + 2:1的二进制位:000000012的二进制位:000000101 + 2求和后当前数据(不算进位):000000111 + 2求和的进位:00000000,则没有进位两者相加后,得到:00000011就是31 + 3:1的二进制位:00000001

2021-06-18 19:49:09 250

原创 高级数据结构与算法 — 二叉搜索树

文章目录二叉搜索树概念二叉搜索树的实现1.树的结点与树2.查找2.插入总结二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树键值是唯一的,所以二叉搜索树不能有相同的键值例如:以下数据构建二叉树int a [] = {5,3,4,1,7,8,2,6,0,9};二叉搜索树的实现1.树的结点与树树的.

2021-06-05 23:20:54 203 5

原创 【笔试题】求最小公倍数 C++(两种方法)

题目本题链接:求最小公倍数正整数A和正整数B 的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输出描述:示例1:解题思路一: 暴力破解从两个数中较大的数开始,逐个进行判断,能够被两个数整除,则第一个就是最小公倍数。代码:#include<iostream>using namespace std;int main(){ int a, b; while(cin >> a >>

2021-05-05 21:44:25 23126 8

原创 【笔试题】两种排序方法 C++

题目本题链接:两种排序方法考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” < "doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “carriage”考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃

2021-05-05 20:45:04 152

原创 【笔试题】合法括号序列判断 C++

题目本题链接:合法括号序列判断给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。测试样例:测试样例:测试样例:解题思路:本题可以通过栈来实现。如果遇到非括号字符直接返回false。遍历字符串,遇到左括号,则压栈;遇到右括号则查看栈中是否有对应的左括号,如果栈为空,则表示匹配不完整,多出了右括号,如果栈顶元素是左括号,则出栈与右括号匹配成为一个完整的括号;遍历完之后,如果栈不为空,则匹配不完整,多出了左括号,栈为空,则表示括号匹配成功。

2021-05-05 16:36:15 476

原创 【笔试题】Fibonacci数列 C++

题目本题链接:Fibonacci数列Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入描

2021-05-05 15:48:37 132

原创 【笔试题】把字符串转换成整数 C++

题目本题链接:把字符串转换成整数将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输出描述:示例1:示例2:代码思路:如果是空字符串,直接返回0;遍历字符,如果字符中有非数字字符,也直接返回0。我们都先用正数处理,如果第一个字符是’-’,最后返回-1*sum。若第一个字符是是符号字符(’-’、’+’),我们把这个位置置为字符’0’,这样不会影响最终结果,并且遍历的时候不会因为这个位置不是数字字符而退出。转换为整

2021-05-05 14:40:12 391 1

原创 【笔试题】不要二 C++

题目本题链接:不要二二货小易有一个W*H的网格盒子,网格的行编号为0—H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:输出描述:示例1:解题思路:网格盒子其实就是二维数组。这个题的关键点就是:在二维数组中每个坐标去放

2021-05-05 13:45:04 153 2

原创 【笔试题】连续最大和 C++

题目本题链接:连续最大和一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3。输入描述:输出描述:示例1:解题思路:本题是一个经典的动规问题。通过{6,-3,-2,7,-15,1,2,2}举例,dp[i]以数组下标为i的数作为结尾的子序列最大和,例如,dp[2]就是以-2结尾的,子序列最大和的值为1(6 + -3 + -2),dp[3]就是以7结尾的,子序列最大和就是8(6 + -3 + -2 + 7)。当我们求dp[i]的

2021-05-01 23:46:32 314

原创 【笔试题】统计回文 C++

题目本题链接:统计回文“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B = “b”。这里有4种把B插入A的办法:在A的第一个字母之前: “baba” 不

2021-05-01 17:15:01 260 1

原创 【笔试题】进制转换 C++

题目本题链接:进制转换给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入描述:输出描述:示例1:解题思路:原理:N进制数,每个进制位的值分别是X0*N^0, X1*N^1, X2*N^2.....,X0,X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。我们通过示例来演示:10进制的7转化为2进制。7 % 2 = 1; 7 / 2 = 3;  步骤1️⃣3 % 2 = 1;3 / 2

2021-04-28 17:28:35 345 1

原创 【笔试题】 计算糖果 C++

题目:本题链接:计算糖果A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输出描述:示例1:解题思路:本题本质是一个表达式求解的问题。A - B = a; 步骤1️⃣B - C

2021-04-28 15:37:41 188

原创 【笔试题】数组中出现次数超过一半的数字 C++(多种方法)

题目:本题链接:数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例1:解题思路一(时间复杂度高): 求取排序后的中间数先对数组进行排序,如果符合条件的数存在,则一定是数组中间的那个数;但如果数组中本身就没有符合条件的数,中间的数就不是我们要找的数。先找出排序后中间的数,然后遍历整个数组,记录这个中间数

2021-04-25 18:21:51 1636 2

原创 【笔试题】字符串中找出连续最长的数字串 C++

题目本题链接:字符串中找出连续最长的数字串读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:输出描述:示例1:解题思路:遍历字符串,使用cur记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串和之前的数字串比较,如果更长,则更新更长的数字串到ret字符串。图解:有3个字符串,str字符串保存输入的数据;cur字符串用来保存当前遍历的数字字符;ret字符串用来保存连续最长的数字串。代码:#include<iostream&

2021-04-25 16:08:24 305

原创 【笔试题】倒置字符串 C++

题目:本题链接:倒置字符串将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I输入描述:输出描述:示例1:解题思路:先将整个字符串逆置过来:.gnijieb ekil I遍历字符串,找出每个单词,对单词逆置:beijing. like I。这里通过算法库中的reverse逆置,所以这里使用迭代器遍历string图解:代码:#include<iostream>#include<algor

2021-04-25 10:56:40 256

原创 【笔试题】排序子序列 C++

题目:本题链接:排序子序列牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2.输入描述:输出描述:示例1:解题思路:先来了解一下非递增、非递减。非递增就是arr[i + 1] <= arr[i]

2021-04-24 20:38:01 383 1

原创 【笔试题】删除公共字符 C++

题目:本题链接:删除公共字符输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:输出描述:示例1:解题思路:我们通过哈希的思想来解这道题。先把要删除的字符串,通过ASCII码值一一映射到一个数组中,并把映射到所在位置的元素加1。遍历第一个字符串,判断当前字符是否在数组中,不要使用删除,删除效率太低,因为每一次删除都伴随着字符移动。可以考虑将不

2021-04-23 00:01:49 369

原创 【笔试题】组队竞赛 C++

题目:本题链接:组队竞赛牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。如样例所示:如果牛牛把6

2021-04-22 22:46:26 515

原创 Linux 线程控制

文章目录前言一、创建二、退出三、等待四、分离前言操作系统实际上并没有向上提供用于创建线程的接口,因此在上层就通过封装实现了线程控制对应所需的库函数,实现对线程的操作。一、创建创建线程的库函数:int pthread_create(pthread_t *tid, pthread_attr_t *attr, void*(*routine)(void*), void *arg);tid:获取线程id,也是线程的操作句柄attr:设置线程属性,通常设置为NULLroutine:函数指针,线.

2021-04-20 17:46:30 195

原创 Linux 多线程与多进程的优缺点

多进程与多线程处理任务:如果需要进行多任务处理,有两种方法:一种是多线程,一种是多进程。线程优点:线程间的通信更加灵活:线程间共用同一虚拟地址,共享数据段,只要知道虚拟地址就可以访问数据。线程间的通信方式包含进程间通信方式(管道、共享内存、消息队列、信号量)在内还可以使用全局变量以及函数传参实现通信。线程的创建与销毁成本更低:创建线程只需要创建pcb,然后建立映射关系线程间的调度成本低:共用同一页表,调度时不用切换页表等注意: 一个线程崩溃,进程退出,释放进程资源,所有线程退出。 线程不

2021-04-19 18:03:47 557

原创 Linux 线程的理解与线程间的独有与共享

在初学进程时,认为进程就是一个pcb,在linux下是一个task_struct结构体,是程序动态运行的描述,通过这个描述操作系统实现对程序运行的调度以及管理。那线程是什么呢?我们先通过一个比喻来区别进程与线程。工厂中,至少有一个工人,工人是工厂中干活的人,工厂是集体资源的实体。实际上,工厂就是进程,工人就是线程。理解起来,就是在一个进程中有多个线程,每个线程都执行各自的任务。比如在程序中有多段代码,每个线程执行其中一段代码,实际上一个线程就是一个pcb。画图理解:...

2021-04-19 16:01:51 390

原创 C++ String类的模拟实现(构造、析构、拷贝、赋值运算符重载)

我们在写代码的过程中,直接使用string类,不用考虑底层的实现,很方便。但是只有我们理解底层的实现,用起来才更得心应手。默认成员函数构造string类有三个成员变量: char* _data;//存放字符串的首地址 int _size;//有效字符的个数 int _capacity;//可以保存的最大有效字符个数默认构造1.先开辟字符串大小的空间,要包含’\0’的位置2.再将字符串拷贝到新开辟的空间中 String(const char* str = "") { _size =

2021-04-13 22:55:19 524 4

原创 C++ const修饰类的成员函数

将const修饰的类成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。使用方法:直接在要修饰的成员函数后面加const。class A{public: //this的指向不能发生改变 void setA(int b) //this: A* this const { _a = b; } //const修饰成员函数 //this的指向不能发生改变,所指向的内容也不能改变 int get

2021-04-02 00:15:58 406

原创 C++ 迭代器失效及解决办法

迭代器失效的几种情况,以vector类为例1. 操作已经释放的空间我们先来看一段代码这段代码乍一看好像是没有什么问题,输出第一个元素的值,那结果是不是我们想的那样?通过结果我们可以看出,第一次打印没有出错,但是第二次打印却报错,是为什么?我们第一次打印完后,进行扩容,向系统申请一块更大的空间,会将原来空间的数据拷贝到新开辟的空间,最后会将原来的空间释放。但此时it指向的是原有空间,原有空间释放,it就会成为野指针。第二次打印,对it作解引用,访问已经释放的空间,程序就会崩溃并且也不安全。只要涉

2021-03-31 14:37:26 1125

原创 程序地址空间(虚拟地址 | 分段式内存管理 | 分页式内存管理)

内存区域划分:地址:通常所说的地址,都是内存的地址,是内存单元的编号。程序运行时,就会将指令和数据放到指定的内存当中去。而程序只有在运行的时候才会占据内存,因此程序地址空间又被叫做进程地址空间。我们都知道,一块内存空间只能存储一个数据不可能存储两个数据,并且地址空间相同,所指向的数据就一定相同,但是为什么上面地址相同,所指向的数据却不同,是内存分配错误吗?实际上在进程中,程序访问的地址是虚拟地址。我们所说的程序地址空间叫做进程的虚拟地址空间。进程访问内存数据的时候,先将虚拟地址转化为物理地址然后访问

2021-03-25 11:05:37 1036

原创 Linux环境变量(PATH | main函数的三个参数)

环境变量:保存运行环境参数的变量;使程序运行环境配置更加灵活;以及可以通过环境变量实现进程间的小量数据通信(父子进程)环境变量命令操作env查看环境变量set查看所有变量。变量分为普通变量和环境变量。一般set | grep 变量名这样用,因为set的变量太多。export 声明/设置环境变量刚开始MYVAL只是普通变量,通过env查找不到,然后对MYVAL进行export声明,此时的MYVAL就是环境变量,通过env可以查找到。也可以直接设置环境变量。echo查看指定变量

2021-03-23 19:27:36 490

原创 Linux进程状态(僵尸进程 | 孤儿进程 | 守护进程)

linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。进程状态用于操作系统对于进程的管理,什么状态下该对进程进行什么样的操作。Linux中的进程状态:运行态R:正在运行或者轮转到时间片则能够运行统称运行态。时间片:cpu调度运行程序的时间段。时间片过后,cpu就该调度下一个进程。可以通过ps -aux|grep status查看当前进程状态。R+表示进程是一个前台进程,当前占据终端的进程,在此过程中输入其他指令,不会有响应。因为

2021-03-22 14:48:30 597 2

原创 Linux进程的理解(PCB | fork | 返回值)

文章目录一、进程与PCB二、进程查看三、创建进程1. 通过系统调用获取进程ID2. 创建进程一、进程与PCB进程是什么?粗略的说,进程就是运行中的程序。那么PCB又是什么?PCB也叫进程控制块。对程序运行的动态描述,就叫做PCB,在Linux下是一个task_struct结构体。在PCB中存储了程序运行的各种信息,如果程序被中断,PCB就会记录程序此时的状态,如果程序再次运行,该从哪里开始,这些信息都会在PCB中记录。PCB中的描述信息:内存指针、上下文数据,程序计数器,进程ID(p.

2021-03-21 23:47:01 272 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除