自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C/C++】设计模式——工厂模式:简单工厂、工厂方法、抽象工厂

工厂模式提供了一种封装对象创建过程的方式,使得代码更易于管理和扩展。工厂模式隐藏了对象的具体创建过程,从而可以通过接口来创建对象,而无需关心具体的实现细节。扩展性高:工厂模式利于后期方法的维护,解耦合。简单工厂模式(静态工厂)将对象的创建和使用分离,由一个工厂类根据传入的参数来决定创建哪一种产品类的实例,简单工厂违背了开闭原则,故将简单工厂中的工厂拆分为多个工厂:增加产品时 Factory 工厂不用改变,只需要添加对应产品类型的工厂

2024-05-11 14:22:00 867

原创 【C++11新特性】lambda表达式和应用场景

C++11 中的 lambda表达式用于定义匿名函数,同样有参数列表,返回值、类型和函数体,但是它可以在函数内部定义。定义小型匿名函数对象时更加便捷。lambda表达式的格式:auto 函数名 = [capture](parameters) -> return_type { body };其中:captures 捕获列表,用于捕获lambda外部的变量 , lambda可以把上下文变量以**值=或引用&**的方式捕获(如果是引用传递,lambda 函数将会改变变量值),在body中直接使

2024-05-09 22:53:52 369

原创 【C/C++】设计模式——单例模式

单例模式确保了一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式的特点:1.一个类只有一个实例2.提供一个全局访问点来获取这个实例3.单例对象必须由单例类进行创建(构造函数设为私有 private)如何实现单例模式?构造析构拷贝构造私有提供静态公有的获取对象的方法控制资源访问:通过单例模式,可以确保对某个资源的全局访问点只有一个,这样可以防止其他对象对该资源的访问导致状态不一致或数据污染。减少系统开销:如果一个类的实例创建非常消耗资源(如读取配置文件、打开数据库连接等),

2024-05-04 19:43:42 780

原创 【算法】快速排序的基本思想、优化 | 挖坑填补法和区间分割法

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!🔥。

2024-04-15 23:15:30 335 3

原创 【Python】sudt-输出一个字符串的字符的16-10-8-2进制数 Python代码实现

sdut-输出一个字符串的字符的16-10-8-2进制数输入一行字符串,去掉非16进制字符,将它转换成16、10、8、2进制数,输出输入格式:输入一行字符串。输出格式:输出转换后的16、10、8、2进制数。数据之间有1个空格。(16进制字母小写)输入样例:_ahg1*B输出样例:a1b 2587 5033 101000011011

2024-04-14 14:55:10 245 1

原创 【LeetCode刷题笔记】LeetCode 1365.有多少小于当前数字的数字

目描述给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案

2024-04-11 22:01:26 949

原创 【C/C++】C++中的四种强制类型转换

C++四种类型转换static_cast(待转换量)dynamic_cast(待转换量 )const_cast(待转换量 )reinterpret_cast( 待转换量 )为什么要提出新的类型转换?C语言中的强制类型转换无所不能,而C++强调类型安全。static_cast静态转换编译时确定的,用于相关内容的转换 。int short char 之间浮点数与整数普通指针和泛型指针

2024-03-27 19:16:37 1034 4

原创 【MySQL】一条 SQL 查询语句在数据库中的执行流程 | SQL语句中各个关键字的执行顺序

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

2024-03-25 18:33:57 537 1

原创 【C/C++】右值引用 | 完美转发 | std::move移动语义

引用可以分为左值引用,右值引用,常引用左值:可以出现在赋值号左和右的值可以取地址、修改、起名例如:变量、指针、对象右值:只能出现在赋值号右面不可取地址、修改、起名例如:常量、函数返回值、表达式返回值常引用可以接受左值也可以接受右值,但是不可以修改引用的值左值引用:给变量起别名,使用 &定义,定义了引用就要初始化,不存在空的引用!左值引用知识点:引用的概念和用法右值引用:用 && 符号引用右值左值引用和右值引用定义举例:

2024-03-01 11:13:57 674 5

原创 【C/C++】inline内联函数详解

内联函数在C++中是一种特殊的函数,内联函数的代码在编译时会在调用的位置展开,而不是在运行时调用函数。这样做可以消除函数调用的开销,从而提高程序的执行效率。相当于define宏替换内联函数可以分为:隐式内联函数:类内的函数(虚函数除外)都为隐式内联函数显式内联函数:在类外使用inline关键字修饰的函数

2024-02-28 23:40:37 692 4

原创 【Linux操作系统】死锁 | 预防、避免死锁

当多个进程竞争资源而处于阻塞状态,相互等待。如果没有外力推进,进程无法继续执行任务,这种情况称为死锁(Deadlock)。例如,进程A锁定了资源1并试图锁定资源2,而进程B已经锁定了资源2并试图锁定资源1。如果这两个进程都不放弃它们已经锁定的资源,那么它们都将永远无法获取到它们需要的资源,从而导致死锁。或者说每个进程所等待的事件是该组中其它进程释放所占有的资源。

2024-02-26 22:55:39 939 3

原创 【C++STL】迭代器分类 失效问题

正向迭代器iterator容器.begin()容器.end()正向遍历容器内元素常正向迭代器容器.cbegin()容器.cend()正向遍历容器内的常量元素反向迭代器容器.rbegin()容器.rend()反向遍历容器内元素常反向迭代器容器.crbegin()容器.crend()反向遍历容器内的常量元素int main()//正向迭代器while (it!it++;//常正向迭代器while (cit!cit++;//反向迭代器。

2024-02-25 18:29:54 658 2

原创 【C++STL】STL容器详解

容器底层实现描述包含头文件向量vector数组,快速访问可以在O(1) 时间内访问和修改任意元素,在序列尾部进行插入和删除时,具有 O(1)时间复杂度,对任意项的插入和删除就有的时间复杂度较高,尤其对向量头的添加和删除开销非常高双端队列deque一个中央控制器和多个缓冲区基本上与向量相同,唯一的不同是,其在序列头部插入和删除操作时间复杂度也为 O(1)表list双向链表,快速增删对任意元素的访问时间复杂度为 O(n),支持快速插入删除 O(1)

2024-02-24 17:11:42 751 3

原创 【LeetCode刷题笔记】242.有效的字母异位词

给定两个字符串 *s* 和 *t* ,编写一个函数来判断 *t* 是否是 *s* 的字母异位词。利用哈希表存储两个字符串中各自重复出现的字符次数,然后遍历比较两个字符串重复字符的哈希表,如果出现次数不同返回false注意: 若 *s* 和 *t* 中每个字符出现的次数都相同,则称 *s* 和 *t* 互为字母异位词。

2024-02-23 18:07:12 425 4

原创 【MySQL】数据库索引详解 | 聚簇索引 | 最左匹配原则 | 索引的优缺点

什么是索引?可以用于优化查询。mysql索引使用什么?有使用B+树的索引,有使用hash表的 引擎决定了索引的类型。为什么不使用 AVL、 红黑树作为索引?红黑树的本质仍是二叉树,当数据量比较大时,红黑树的层数比较高,每次读取节点都是在做磁盘 IO并且每个节点只能存储一个数据,但是在索引的数据结构中,一个节点需要存两个值,一个是key 用来存节点的值,一个是value 存索引所在行的磁盘地址,查到后就能获取到其value内的值即地址。为什么不使用哈希作为索引?哈希表不支持排序操作,哈希表不能进

2024-02-22 23:07:10 1433 3

原创 【MySQL】报错 Incorrect string value: ‘\xE5\xA4\xA9\xE5\x96\x9C‘ for column的解决方法

在向数据库中插入中文时遇到报错Incorrect string value: '\xE5\xA4\xA9\xE5\x96\x9C' for column ,此时为数据库的编码格式有问题,可以按照如下方法修改:输入以下sql语句将字符集和校验规则修改为utf-8:alter table 表名 modify 列名 列数据类型 character set utf8 collate utf8_general_ci;

2024-02-21 22:15:44 700

原创 【C++11新特性】详解智能指针 创建、使用、注意事项

C++11 中引入了智能指针,便于进行内存管理使用智能指针 需要包含头文件:#include 以及 std 命名空间智能指针会自动回收空间,不需要担心内存泄漏问题四种智能指针:auto_ptr(C++11 被弃用)unique_ptrshared_ptrweak_ptr一、 auto_ptr创建auto_ptr对象的三种方式:

2024-02-18 17:04:18 1202

原创 【Linux】线程Pthread的概念 | NPTL线程库函数

线程是操作系统能够进行调度和执行的最小单位。它是进程内执行的一个独立单元,与同一进程中的其他线程共享进程的地址空间和系统资源。线程能减少程序在并发执行时所付出的时空开销,使操作系统具有更好的并发性。二、线程和进程一般情况下进程包含线程,线程比进程更轻量(体积更小,开销更小)进程是最小的分配资源单位,线程是最小的调度单位线程不分配内存,线程创建于进程中,与进程共享资源,访问进程的内存,完成特定任务类 Unix 系统中,早期是没有“线程”概念的,80 年代才引入,借助进程机制实现出了线程的

2024-02-06 22:18:30 821

原创 【Linux】Daemon守护进程详解

孤儿进程是父进程结束后,自己仍继续运行的进程。孤儿进程会被1号进程(init进程)收养。每当出现一个孤儿进程的时候,内核就把孤儿的父进程设置为init,而init进程会循环地wait()它的已经退出的子进程。二、守护进程守护进程是一种在后台持续运行的特殊进程。守护进程一般不与用户直接交互,它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种特殊的孤儿进程。守护进程丢弃了原有的控制终端,因此需要创建新会话以脱离控制终端。会话是多个进程组的集合。如何建立新

2024-02-01 15:29:37 1042

原创 【Linux】mmap内存映射

mmap内存映射是一种可以用于进程间通信的技术,通过mmap,多个进程之间可以直接读取和修改磁盘上的文件内容,从而实现进程通信。同时也不需要像传统方式那样先将文件读入到用户空间,然后再从用户空间写入内核空间。这种映射机制提高了文件访问的效率。(相比于read()减少了一次拷贝开销)#include void* mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); 函数参数:

2024-01-31 20:58:53 1028

原创 【Linux】匿名管道pipe和有名管道fifo详解

进程间通信IPC进程间通信是操作系统提供的一种机制,用于多个进程之间进行数据通信,实现资源协调与共享。IPC:Interprocess Communication 进程间通信例如在单任务处理器中,多个进程之间就依靠着进程间通信 调度CPU,使得多个进程高效率并发执行Linux中进程间通信的方式:管道:半双工通信方式,分为匿名管道(pipe)和有名管道(fifo),用于具有亲缘关系之间的进程通信消息队列:进程利用消息队列通过发送和接收消息进行通信信号:主要用于消息的通知和进程控制,不能传

2024-01-31 15:58:54 1160

原创 【Linux】wait()和waitpid()函数

在Linux或Unix系统中,子进程只能由父进程进行回收。如果进程结束但是进程资源仍未被回收,这个进程将会变为僵尸进程,会导致内存泄漏和系统性能下降。使用getchar() 阻塞父进程的执行,子进程结束后父进程未对其进行回收

2024-01-30 11:11:53 775 2

原创 【Linux】fork()函数

操作系统给用户提供了一系列的函数接口,让用户进行与进程有关的编程。一、fork()函数fork()函数用于创建一个子进程,调用fork()函数的是父进程该子进程与父进程几乎完全相同,父子进程的代码共享,但是他们的进程id(PID)不同。fork()函数拥有两个返回值:父进程的fork()函数返回子进程的pid子进程的fork()函数返回0父进程进行代码的全部,子进程执行从fork()函数后的代码,父子进程同时执行fork()函数的使用举例:

2024-01-29 18:30:02 893

原创 【Linux】进程概述

进程在不同角度下可以有不同的定义:进程是进程实体的运行过程。进程是系统进行资源分配和调度的一个单位,是一个任务执行的逻辑单元。在早期计算机的结构中,进程是一个程序及其数据在处理机上顺序执行时所发生的活动。在当代计算机结构中,进程与程序显然是截然不同的概念,程序与进程没有必然联系在进程执行时如果没有数据往来,程序文件被删除甚至都不会影响进程的运行。进程拥有程序所没有的特征:二、进程的特征1.动态性:进程的实质是进程实体的执行过程,它是有生命的,具有各种状态。2.并发性:指多个进程

2024-01-26 14:21:30 1061

原创 【算法】如何不用中间变量交换两个数据?

一、+ - -使用+ 和-完成交换: a = a + b; //a = a + b组合 b = a - b; //b = 组合 - b = 原始a a = a - b; //a = 组合值 - 原始a = b首先,通过加法将两个变量的值组合在一起,然后减去b来获得a的原始值,将原始的a值赋值给b最后再减去新b就能获取到b的原始值,将原始的b赋给a,此时a和b就完成了交换同理乘除等运算也可以注意数据相加可能溢出二、^使用异或^进行交换: a = a^b;

2024-01-15 20:41:38 409

原创 【LeetCode刷题笔记】344.反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须[原地]修改输入数组、使用 O(1) 的额外空间解决这一问题。二、示例示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]三、题目分析使用双指针的思想,令一个指针指向字符串

2024-01-05 20:31:38 928

原创 【计算机网络】TCP心跳机制、TCP粘包问题

一、心跳机制在长连接下,可能有很长一段时间没有数据往来,为了保持长连接存活,存在心跳机制即每隔几分钟就发送一个固定信息给服务端,服务端收到后也回复一个固定信息,以表示连接仍然有效同时 心跳机制还可以用于检测连接是否断开或出现故障但是 心跳机制会增加网络流量二、粘包问题由于TCP是基于字节流传输,没有边界,可以合并,合并拆不开就是粘包(UDP没有这个问题,因为UDP每个消息都有明确的边界)解决办法:1.设置标志位(开始/结束)在数据包中的开始和结束位置添加标志位,对端收到数据

2023-12-21 15:08:25 695

原创 【LeetCode刷题笔记】155.最小栈

题目链接LeetCode 155.最小栈一、题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。二、示例示例 1:输入:[ “MinStack”,“push”,“push”,“pus

2023-12-17 11:00:26 1603 1

原创 【算法】哈希表介绍 | 哈希表的链式地址法代码实现(C/C++)

哈希表(HashMap、unordered_map)又称为散列表,是一种可以对已经存储的数据进行快速查找的数据结构,它可以根据键(Key)值直接进行访问。举几个栗子:在电话簿中,每个电话号码对应一个名字,在查找某个人的电话号码时根据姓名即可进行快速查找,这实际上就利用了哈希思想,键是电话号码,值是名字。如果要对某字符串进行反复搜索的操作,每次都遍历字符串效率太低,使用哈希思想将字符进行分组(例如分为256组),然后将每个字符按照规则存储(将字符串中的每个字符通过哈希函数进行映射),在后续对字符查找

2023-12-17 10:27:10 1308

原创 【LeetCode刷题笔记】103. 二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。锯齿形层序遍历的解法基于普通的层序遍历基础上:二叉树的层序遍历:使用队列将每层节点入队,再根据该层数量(queue.size())控制遍历锯齿形层序遍历就是对层序遍历再多加个约束条件:一层正常遍历,一层将遍历后的结果插入到上个数据前面(反方向遍历实现方法:将数据从队列弹出后,每次添加到结果数组中,添加的位置在前 就实现了从右向左输出)

2023-12-02 13:36:13 491

原创 【LeetCode刷题笔记】102. 二叉树的层序遍历

题目描述给你二叉树的根节点root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。要按照每层向下遍历,就需要知道每层节点的数量(用于控制每次输出几个数据再进入下一层)与深度遍历不同的是,在左子树遍历时,需要记住当前层的右子树仍未遍历。难点在于控制左右子树非兄弟节点也按层输出(例如下图中的6、12、15、7需要在同一层输出,而深入9遍历6和12的时候,15和7就不会被遍历到)问题转化为如何保存同层仍未遍历的节点或者说 遍历同层节点时,如何保存同层非兄弟节点的孩子节点如果

2023-12-02 09:03:19 1006

原创 【LeetCode刷题笔记】160.相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的 起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目分析对链表的题目大多可以使用指针迭代进行解决,链表不允许被破坏,使用双指针对链表进行遍历。A和B可以看作为两条链表,先使用p1指针从A链表开始遍历,再使用p2指针从B链表开始遍历,哪个指针先遍历到链表结尾,就代表哪个链表更长。使用长链表的长度减去短链表的长度为这两条链表长度差,再利用长链表指针先出发这个长度差后,短

2023-11-29 16:03:02 1144 1

原创 【Linux】Linux常用命令—磁盘管理、压缩包管理

磁盘管理mount格式: mount [-t vfstype] –o options 设备 挂载点-t vfstype: 指定文件系统的类型,通常不用指定,mount会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsmount windows文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs-o optio

2023-11-10 16:19:33 157 1

原创 【Linux】Linux常用命令—用户管理

whoamichmodchownuseraddpasswdsuuserdelapt-get、deb包安装、源码安装whoami格式: whoami功能:查看当前登陆的是哪个用户chown chown 用户:用户组 文件名功能:更改文件/目录的所有者(用户或用户组)root用户把自己的一个文件拷贝给某个用户,为了让用户能够存取这个文件,root用户应该把这个文件的属主设为该用户否则,该用户无法存取这个文件。举例:先使用su命令切换root用户将aa文件改

2023-11-10 15:57:24 134

原创 【算法设计】回溯法算法设计——骑士游历问题(C++实现)

骑士游历问题问题描述在国际象棋的棋盘(8行×8列)上放置一个马,按照“马走日字”的规则,马要遍历棋盘,即到达棋盘上的每一格,并且每格只到达一次。若给定起始位置(x0,y0),编程探索出一条路径,沿着这条路径马能遍历棋盘上的所有单元格算法思想和解题思路马从棋盘上的某一初始位置(x0,y0)开始,每次选择一个方向k,向前走一格,直到走完64格为止。每走一格,设置数组中相应格的元素值为马走的步数。如果选择的方向k=0,表示可能的8种走向都试探不通,不通的原因是走向超出了棋盘范围,或当前位置已经被

2023-11-09 19:59:54 703 1

原创 【算法设计】贪心算法设计——均分纸牌、线段覆盖问题(C++实现)

有N堆纸牌,编号分别为1,2,…,n。每堆上有若干张,但纸牌总数必为n的倍数。可以在任一堆上取若干张纸牌,然后移动在一维空间中存在N条线段,每条线段的起始坐标与终止坐标已知,要求求出这些线段一共覆盖了多大的长度。L1 L2 L3 L4 L5 L6 L7 L8 L9 移牌的规则为:在编号为1上取的纸牌,只能移到编号为2的堆上;在编号为n的堆上取的纸牌,只能移到编号为n-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。

2023-10-26 17:31:27 715

原创 【算法设计】动态规划算法设计——天平平衡、数塔问题(C++实现)

天平平衡:已知一个天平左右两端共有n个挂钩,且有m个不同质量的钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。试设计求解该问题的动态规划算法。数塔问题问题描述对于诸如下图的数塔,若从顶层走到底层,每一步只能走到相邻的结点,求经过的结点的数字之和最大的路径,试设计求解该问题的动态规划算法。算法思想和解题思路m个钩码要么挂在左边,要么挂在右边,使得左右平衡,也就是说使得左右两边的钩码重量之和相等左边或者右边的钩码重量之和是全部钩码重量之后的二分之一,天平的两端的重量和为m从给定的数字数组中选择

2023-10-25 15:30:39 683

原创 【算法设计】递归与分治算法设计——二分搜索、假币识别问题(C++实现)

算法分析与设计——二分搜索和假币识别问题:设a[0:n-1]是已排好序的数组。试改写二分搜索算法,使得当搜索元素x不在数组a中时,返回小于的最大元素的位置i和大于x的最小元素的位置j当搜索元素x在数组a中时,返回x在数组中的位置,此时i和j相同。一个袋子里有n个硬币,其中一枚是假币,假币和真币外观一模一样,仅凭肉眼无法区分,但是已知假币比真币轻一些。试设计识别假币的分治算法算法思想和解题思路先将有序数组分成两部分,中间位置mid为基准值若该值等于目标值key,则直接返回若该值大于目标值,则在左半部

2023-10-23 17:26:58 621

原创 【vscode下载安装】只需简单一步——使用镜像解决vscode下载慢、失败的问题

vscode下载链接vscode官网下载:https://code.visualstudio.com但是下载速度非常慢,还容易下载失败:在这里插入图片描述vscode下载慢、失败的解决方法:打开下载内容,复制下载链接在这里插入图片描述粘贴到网址栏:在这里插入图片描述然后复制vscode.cdn.azure.cn将以下内容外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传替换为:![外链图片转存失败,源站可能有防盗链机制

2023-10-18 18:37:59 1172 1

原创 【Linux】详解Linux中的Makefile文件

Makefile文件是Linux中用于编译和链接的自动化工具,是GNU工具(vi、gdb、makefile)的一部分。为什么需要编写Makefile文件程序的生成过程分为:编译期(源文件.c编译生成.o文件)和链接期(把所有.o文件链接生成可执行文件)。如果程序更新,下次生成可执行文件会对所有文件再次执行这个生成过程。因此需要Makefile文件,在修改源文件后,只编译修改后的文件,节省编译时间。Makefile的执行原理程序第一次编译时,会保存所有生成的中间文件.o文件,下次编译时只编译修改的

2023-10-16 19:55:48 522

基于动态体系的机场综合管理系统

基于动态体系的机场综合管理系统,通过采用高可用性和可伸缩性的微服务架构,将核心功能划分为多个独立的服务,每个服务都可以单独升级和扩展,从而确保系统的可用性和性能。同时,本文还介绍了航班调度子系统的功能,包括航班后台管理和航班实时监控等。通过学习本文,读者可以了解到如何设计高可用性的系统架构,以及如何将核心功能划分为多个独立的服务,从而确保系统的可用性和性能。此外,读者还可以了解到航班调度子系统的功能和流程,以及如何制定合理的航班调度策略。通过了解消息传递机制在系统中的应用,读者可以更好地理解各个构件之间的通信和交互方式。本文适用于对机场综合管理系统和航班调度子系统感兴趣的读者,包括软件开发人员、系统架构师、航班调度员等。通过学习本文,读者可以了解到如何设计和开发一个高效、可靠的机场综合管理系统,以及如何实现航班调度的优化和管理。同时,本文还提供了对微服务架构和消息传递机制的深入理解,有助于读者更好地应对复杂的应用场景和技术挑战。

2023-11-01

操作系统重要概念复习总结

本文涵盖了操作系统的基本概念和功能,包括进程控制、存储器管理、输入输出系统、文件管理等。具体概念包括: 操作系统是配置在计算机硬件上的第一层软件,主要作用是管理好这些设备,提高利用率和系统的吞吐量,并为用户和应用程序提供一个简单的接口。 多道程序是指将多个进程同时加载到内存中,并通过切换执行的方式实现并发执行。 分时系统是指在一台主机上链接了多个配有显示器和键盘的终端并由此所组成的系统,允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。 系统调用是操作系统提供给应用程序的一种编程接口,用于访问和请求操作系统内核提供的服务和资源。 虚拟机是通过分时复用的方法,将一台物理I/O设备虚拟为多台逻辑上的I/O设备。 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。状态切换是指进程在运行过程中发生的状态的转换。 适用人群: 这篇文章适合对计算机系统、操作系统和系统管理感兴趣的读者,包括学生、研究人员、开发人员、系统管理员等。 能学到什么: 通过阅读这篇文章,读者可以了解到操作系统的基本概念、功能和重要元素,包括进程控制、存储器管理、输入输出系统、文件

2023-11-01

空空如也

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

TA关注的人

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