自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【操作系统】:一文带你完全了解银行家算法

银行家算法是一种经典的死锁避免算法,其核心思想是通过预判资源分配的安全性来防止系统进入死锁状态。算法模拟银行借贷机制,确保系统始终处于安全状态(存在至少一个安全序列)。主要步骤包括:初始化资源信息、安全性检查(寻找安全序列)以及处理资源请求时的合法性验证和试探性分配。通过实例分析(如进程P1请求资源(1,0,2))可直观理解算法如何拒绝不安全请求,确保系统稳定运行。该算法适用于资源分配场景,但需提前获知进程最大需求且可能增加系统开销。关键词:死锁避免、安全状态、资源分配、试探性分配、安全序列。

2025-06-11 10:27:10 514 10

原创 【C++仿Muduo库#3】Server 服务器模块实现上

📃个人主页:island1314。

2025-06-09 22:05:39 1173 62

原创 【C++仿Muduo 库 #2】前置知识技术点功能用例

一、C++11的bindstd::bind是C++11引入的函数适配工具,用于绑定函数参数或调整参数顺序,生成新的可调用对象。它可以将函数参数固定或预留,降低代码耦合度,特别适用于设计线程池或任务池场景。二、秒级定时任务实现基于Linux的timerfd接口可以实现秒级定时任务:使用timerfd_create创建定时器timerfd_settime设置超时时间定时器触发时,描述符变为可读状态通过read获取累积超时次数这种机制可用于检测超时连接并释放资源,示例代码展示了每秒触发一次定时

2025-06-07 17:22:58 769 11

原创 【Redis#3】:Redis 的安装和使用

本文介绍了Redis的安装配置及常用命令使用。主要内容包括:Redis安装:通过apt命令安装Redis,配置远程连接(修改bind地址和关闭保护模式)服务管理:使用service命令启停Redis服务,查看状态客户端连接:演示redis-cli的交互式和命令式两种连接方式常用命令:重点讲解get/set键值操作,以及KEYS、EXISTS、DEL等全局命令

2025-06-05 21:34:30 1169 74

原创 【Redis#2】初识 Redis

Redis是一个高性能的开源内存数据库,支持多种数据结构,常用于缓存、消息队列等场景。它支持持久化(RDB和AOF)、集群扩展和编程能力(如Lua脚本)。Redis基于内存存储,比MySQL等磁盘数据库更快,但存储空间有限。通常采用"二八原则",将热点数据缓存到Redis,冷数据存储在MySQL,平衡性能与容量。Redis特别适合分布式系统,支持水平扩展,是应对高并发场景的重要工具。

2025-06-03 08:46:04 969 25

原创 【Redis#1】服务端高并发分布式结构的演进

📃个人主页:island1314。

2025-06-01 15:48:10 1862 93

原创 灌水论坛系统总体设计文档

灌水论坛系统是一个基于Java Web技术的现代化网络论坛平台,旨在为用户提供一个分享知识、交流经验、发布内容的在线社区。该系统以轻量级论坛为设计目标,注重用户体验和系统性能。

2025-05-30 23:26:40 806 18

原创 【MySQL】 事务的概念及ACID属性和使用

由一条或者多条。

2025-05-26 23:53:32 1804 89

原创 编译原理 期末速成

对于 CFG G 的句型,分析树被定义为具有下述性质的一棵树:根由开始符号所标记;每个叶子由一个终结符、非终结符或 ε 标记;每个内部节点都是非终结符;若 A 是某节点的内部标记,且。

2025-05-23 22:57:45 1403 37

原创 【MySQL】函数 & 复合查询 & 内外连接

📃个人主页:island1314🔥个人专栏:Linux—登神长阶⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞这里是为 分组查询做准备的,聚合函数是以 查出来的记录 为单位帮我们进行 数据聚合统计的。这种聚合统计方式通常是产出一个期望的结果,如个数、和、平均值、最大值、最小值。 中其实也是有函数的,这个函数可以被直接调用,我们可以在mysql直接使用聚合函数直接对一组结果进行聚合统计。聚合函数()里面可以是全列,可以是指定列。【案例】:基于我们上面 Retrieve 那建的表 e

2025-05-22 08:06:55 1926 88

原创 JAVA Web 期末速成

是一种嵌入在 HTML 文档中,具有跨平台性、安全性,基于对象和事件驱动的解释型编程脚本语言。

2025-05-19 20:31:41 2737 34

原创 数据通信原理 & 光纤通信 期末速成

调制速率:每秒传输信号码元的个数(又称波特率)NBaud1TsNBaud​Ts​1​(其中TsT_sTs​是信号码元持续时间,单位 Baud)数据传信速率:每秒所传输的信息量当信号 为 M 电平时(即 M 进制),传信速率 和 调制速率关系RNlog2M单位bitR = N log_2M(单位: bit)RNlog2​M单位bit补充频带利用率η符号速率频带宽度BaudHz数据传信速率。

2025-05-16 16:54:17 1591 29

原创 【MySQL】:数据库表的 CRUD 操作

📃个人主页:island1314。

2025-05-14 13:53:33 2717 102

原创 【C++仿Muduo库 #1】基本了解

📃个人主页:island1314🔥个人专栏:Linux—登神长阶。

2025-05-12 17:31:35 1406 88

原创 【git#5】远程操作 & 标签管理

📃个人主页:island1314。

2025-05-08 08:17:56 1975 45

原创 【Linux网络#17】TCP全连接队列与tcpdump抓包

此时可以看到两条链接,由于 TCP 是全双工的,因此当我们客户端和服务端在同一台主机上,建立连接启动之后,netstat 就能查到两个,服务端 到 客户端,客户端 到 服务端。操作系统中用户访问的网站多种多样,并且会并发的运行,所以在操作系统内部一定是要通过数据结构来进行管理的!层)为我们维护一个全连接队列,这个队列会把新到来的连接维护起来,当我们未来需要的时候再把新连接获取上去,这个队列的最大长度叫做。我们可以看到 正常连接的前两台主机,都有两个连接(客户端 <==> 服务端),而且状态均是。

2025-05-05 23:33:37 2025 90

原创 【Linux 编程】:深入解析 fcntl 函数

📃个人主页:island1314🔥个人专栏:Linux—登神长阶。

2025-05-03 22:03:38 3431 77

原创 《不定参数与不定宏参数:C++程序员必须掌握的灵活编程技巧》

📃个人主页:island1314。

2025-04-30 15:18:19 1483 78

原创 【C++ 算法】DFS & BFS 一篇速成学习

📃个人主页:island1314。

2025-04-28 12:25:56 2886 84

原创 【git#4】分支管理 -- 知识补充

工作区共享:所有分支操作同一块磁盘区域,但内容由当前分支的提交历史决定。提交隔离:不同分支的提交历史独立,切换分支时 Git 会严格按目标分支的历史重建工作区。看似矛盾的现象:工作区是共享的,但提交后的文件在不同分支下内容不同,这正是 Git 分支机制的核心设计——通过动态覆盖工作区内容,实现高效的多分支协作。

2025-04-25 10:17:39 3187 33

原创 【Git#3】分支管理下的分支策略

📃个人主页:island1314。

2025-04-23 22:02:36 3419 90

原创 【Git#2】分支管理的基本操作

再来理解一下HEAD,HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD 指向的就是当前分支。因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。看到这里就能明白了,因为我们是在dev分支上提交的,而master分支此刻的提交点并没有变,此时的状态如图如下所示。每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长,而。

2025-04-21 10:17:35 2141 84

原创 【Git#1】初识 git(配置 & 基本认识 & 文件操作)

📃个人主页:island1314。

2025-04-18 21:25:30 4433 85

原创 《突破控件限制:用Qt绘图API解锁高级界面定制能力》

💢 QPainter 在绘制时,是有一个默认的画笔的。在画第三个圆之前,由于还原了画家的状态,所以此时画家的位置坐标会移动到画家状态保存的地方,所以在绘制第三个圆的位置时实际是和第二个圆发生了。有时候在绘制多个图形时,想使用同一坐标位置,那么绘制出来的图形肯定会重合,此时,可以通过移动画家的位置来使图形不发生重合。前面的代码中我们是使用 QWidget 作为绘图设备,在 Qt 中还存在下列三个比较特殊的绘图设备。Qt 提供了画图相关的 API,允许我们在窗口上绘制任意的图形形状来完成更复杂的界面设计。

2025-04-16 11:26:54 2115 81

原创 【QT】QT界面的美容院 -- QSS

A. 界面上创建一个按钮B. 右键 -> 改变样式表,使用 Qt Designer 设置样式属性说明font-size设置文字大小。设置圆角矩形。数值设置的越大,角就越圆。设置背景颜色。A. 创建一个文件,并导入以下图片使用黑色作为默认形态使用蓝色作为 hover 形态使用红色作为 pressed 形态⚽ 使用阿里矢量图标库,可以下载到上述图片,下载的时候可以手动选择颜色注意这里的文件命名。B. 创建一个复选框,并且用样式表来编辑复选框的样式。

2025-04-14 12:57:16 1980 89

原创 【Vue #3】指令补充&样式绑定

🐇 为了方便开发者进行样式控制,Vue 扩展了 v-bind 的语法,可以针对 class 类名 和 style 行内样式两个属性进行控制,进而通过数据控制元素的样式。Vue 的指令修饰符(Directive Modifiers)是 Vue 模板语法中的重要特性,它们以半角句号。当class动态绑定的是对象时,键就是类名,值就是布尔值,如果值是true,就添加这个类,否则删除这个类。时,类名会添加到组件的根元素(需组件设计支持)通过对象动态切换类名(键为类名,值为布尔值)

2025-04-12 20:41:22 1634 16

原创 【Vue #2】脚手架 & 指令

补充 – 后继我们要打开这个界面,就需要先运行,然后输入 localhost:端口号(看自己设定的端口号是多少,我这里是 5173)在 构建工具(Vite/Webpack )环境下开发Vue,这是最推荐的、也是企业采用的方式。指令(Directives)是Vue提供的带有v-前缀的特殊标签属性,用来增强标签的能能力。如果需要绑定多个属性,可以使用对象语法,将多个属性和对应的值放在一个对象中,然后通过。Vue中如何避免呢?2、mian.js、App.vue、index.html 三者的关系是什么?

2025-04-10 15:08:22 1736 95

原创 【Vue #1】Vue.js 介绍&声明式渲染&数据响应式

一、Vue.js 介绍📃个人主页:island1314一、Vue.js 介绍。

2025-04-07 16:05:56 2750 96

原创 《并查集的黑科技:路径压缩×按秩合并×带权扩展|算法核心原理与工程级实践指南》

其反函数 α(n) 是满足 A(α(n), α(n)) ≥ n 的最小整数。对于所有实际物理世界中的n值,α(n) ≤ 5。注意:该题和之前冗余连接不同的是,每个点有且只有一个父节点,因此不仅需要考虑环,还需要考虑入度为 2 的问题。此人对 𝑁 个动物,用上述两种说法,一句接一句地说出 𝐾 句话,这 𝐾 句话有的是真的,有的是假的。以下 𝐾 行每行是三个正整数 𝐷,𝑋,𝑌,两数之间用一个空格隔开,其中 𝐷 表示说法的种类。动物王国中有三类动物 𝐴,𝐵,𝐶,这三类动物的食物链构成了有趣的

2025-04-04 22:46:04 2745 105

原创 【Linux网络#19】:深入理解select多路转接:传统I/O复用的基石

📃个人主页:island1314🔥个人专栏:Linux—登神长阶。

2025-04-02 10:48:36 1587 93

原创 【Json-Rpc #3】项目设计

实现思想也并不复杂,也就是在原来的模型基础上,增加一个注册中心,基于注册中心不同的服务提供服务器向注册中心进行服务注册,相当于告诉注册中心自己能够提供什么服务,而客户端在进行远端调用前,先通过注册中心进行服务发现,找到能够提供服务的服务器,然后发起调用。⚗️本质上来讲,我们要实现的 rpc(远端调用) 思想上并不复杂,甚至可以说是简单,其实就是客户端想要完成某个任务的处理,但是这个处理的过程并不自己来完成,而是,将请求发送到服务器上,让服务器来帮其完成处理过程,并返回结果,客户端拿到结果后返回。

2025-03-31 10:56:03 1571 87

原创 CSS 入门指南(二):盒模型 & 浮动弹性布局 & CSS 特性

一、盒模型每一个 HTML 元素就相当于是一个矩形的 “盒子”这个盒子由这几个部分构成 : 边框 border、 内容 content、 内边距 padding、 外边距 margin1. 边框的 border属性是一个用于设置各种单独的边界属性的。border可以用于设置一个或多个以下属性的值:border-width虽然border-width和 border-color。

2025-03-28 23:55:59 1882 98

原创 【#2】介绍第三方库

当我们在多线程编程中使用异步任务时,std:future可以帮助我们在需要的时候获取任务的执行结果。std::future的一个重要特性是能够阻塞当前线程,直到异步操作完成,从而确保我们在获取结果时不会遇到未完成的操作。库主要是用于实现 Json 格式数据的序列化和反序列化,它实现了将多个数据对象组织成为 json 格式字符串,以及将 Json 格式字符串解析得到多个数据对象的功能。是 C++ 标准库提供的工具,用于绑定函数及其参数,生成一个新的可调用对象(函数对象)。静态成员函数没有隐式的。

2025-03-25 22:54:55 1476 35

原创 【QT】一文学会 QT 多线程(QThread )

多线程是提高应用程序性能和响应速度的常用技术之一,而在 Qt 中实现多线程也变得异常简单和高效。本文将对 Qt 中实现多线程的几种常用方法进行介绍,并结合示例程序展示其实际应用。

2025-03-23 23:02:50 2972 96

原创 【QT】系统事件入门 -- 文件 QFile基础和示例

一、Qt 文件概述🔥 文件操作是应用程序必不可少的部分。Qt 作为⼀个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于⽂件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件制或重命名等二、输入输出设备类在 Qt 中,文件读写的类为QFileQIODeviceQIODeviceI/O 设备就是能进行数据输入和输出的设备socketQIODeviceQFileQFileQSaveFileQProcessQBufferQByteArrayQByteArray三、文件读写类。

2025-03-20 08:37:50 1834 104

原创 【Json-Rpc #1】项目背景及环境搭建

关于 Json-Rpc 项目的学习

2025-03-18 16:21:54 3147 114

原创 【C++11】 函数适配:深入理解std::bind与占位符

📃个人主页:island1314。

2025-03-16 17:20:50 1900 105

原创 【QT】事件系统入门——QEvent 基础与示例

事件本身是 操作系统提供的 机制,Qt 也同样把操作系统事件机制进行了封装拿到了 Qt 中,但由于 事件 对应的代码编写起来不方便,因此 Qt 对于事件机制 又进行了进一步的。① 在 Qt 中,鼠标按下是通过虚函数 mousePressEvent() 来捕获的。在 Qt 中,一个对象可能经常要查看或拦截另外一个对象的事件,如对话框想要拦截按键事件,不让别的组件接收到,或者修改按键的默认值等。在 Qt 中,事件分发器(Event Dispatcher)是一个核心概念,用于处理 GUI 应用程序中的事件。

2025-03-13 08:23:29 1389 30

原创 CSS 入门指南(一):基本概念 & 选择器 & 常用元素属性

网页中的 HTML 标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,同时我还会继续更新关于【Linux】的内容,请持续关注我!可以设置多个字体名称,之间使用空格隔开,在实际加载中只会选择一种加载,选择的依据是书写顺序进行(每个字体名用逗号隔开,从左往右查找)特殊情况下,我们需要元素模式的转换,简单理解: 一个模式的元素需要另外一种模式的特性。身份证号码是 id 选择器,是唯一的.

2025-03-10 19:09:15 1831 103

原创 【Linux网络#18】五种 IO 模型

同步I/O(前四种)需进程主动参与数据拷贝,异步I/O则完全由内核处理。实际开发中,多路复用凭借成熟度高、资源利用率优(如Nginx、Redis)成为主流选择。优化I/O效率需结合非阻塞调用、零拷贝技术(如sendfile)和批量处理策略,通过降低等待时间与拷贝次数提升吞吐量。同步与异步的核心区别在于进程是否需等待I/O完成,选择时需权衡场景需求与实现复杂度。

2025-03-09 09:23:05 1102 106

空空如也

空空如也

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

TA关注的人

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