- 博客(23)
- 收藏
- 关注
原创 基础排序算法学习
分治思想。通过一趟排序将数据分成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,按此方法对这两部分数据分别进行排序,以此达到整个数据有序。
2025-09-16 00:14:29
210
原创 Redis分布式锁学习
原理:多线程同时请求,竞争这个锁,一个线程获取锁成功,加锁成功后,uuid + 线程id作为value与当前线程绑定。当业务的处理时间超过了这把锁的过期时间时,业务还没处理完成,这把锁会自动释放。当我们去设置一个锁时,其实只会往一个节点去设置一个锁,设置完后会返回设置成功,内部进行同步。处理业务时,其内部会有一个任务watch dog,会每隔10秒看下,当前线程是否还持有锁,持有则延长过期时间,从而给这把锁续命。若把锁设置到主节点,主节点done后,从节点并没有同步到这把锁,此时依然不安全。
2025-09-15 21:21:59
328
原创 Linux基础知识学习
1)创建空文件touch文件名2)把屏幕显示的内容输出到文件,如果文件已存在,将清空原有的内容。任意可以屏幕输出内容的命令 >文件名3)把屏幕显示的内容追加到文件任意可以屏幕输出内容的命令 >>文件名4 删除目录和文件rm -rf 目录和文件列表选项-r表示删除目录,如果没有-r只能删除文件。选项-f表示强制删除,不需要确认。目录和文件列表之间用空格分隔。5复制目录和文件cp -r旧目录或文件名 新目录或文件名选项-r表示复制目录,如果没有选项-r。
2025-09-06 15:31:05
690
原创 计算机网络学习
电话交换机接通电话线的方式称为电路交换。交换就是按照某种方式动态的分配传输线路的资源。电路交换的三个步骤:1. 建立连接(分配通信资源)2. 通话(一直占用通信资源)3. 释放连接(归还通信资源)可见,当使用电路交换来传送数据时,线路的传输效率往往很低。电路交换报文交换分组交换。
2025-09-04 22:58:56
673
原创 数据库连接池
为了提高MySQL数据库(基于C/S设计)的访问磁盘IO瓶颈,除了在服务器端增加缓存服务器缓存常用的数据外(如Redis、MemCached),还可以增加连接池,提高访问效率。高并发情况下,大量的所耗费的性能时间也是很明显的,增加线程池是为了减少这部分的性能损耗。市场上比较流行的连接池包括阿里的druid、c3p0和apache dbcp连接池,他们对于短时间内大量数据库增删改查操作性能提升很明显,但全部由Java实现。
2025-08-21 15:03:09
16
原创 CMakeLists.txt
PROJECT_SOURCE_DIR 使用 cmake 命令后紧跟的目录,一般是工程的根目录PROJECT_BINARY_DIR 执行 cmake 命令的目录CMAKE_CURRENT_SOURCE_DIR 当前处理的 CMakeLists.txt 所在的路径CMAKE_CURRENT_BINARY_DIR target 编译目录EXECUTABLE_OUTPUT_PATH 重新定义目标二进制可执行文件的存放位置。
2025-08-12 16:25:03
1054
原创 MySQL学习-高级
索引index是MySQL高效获取数据的有序数据结构。优点:提高数据检索效率、提高数据排序效率缺点:索引列也要占据空间;提高查询效率同时降低更新速率,如对表进行insert/update/delete时,效率降低二叉树缺点:顺序插入时,会形成一个链表,查询性能大大降低。大数据量情况下,层级较深,检索速度慢红黑树:大数据量情况下,层级较深,检索速度慢B+树相对于B树:1)所有的数据都会出现在叶子节点;2)叶子节点形成一个单向链表MySQL对B+树进行了优化。
2025-08-01 20:05:47
672
原创 面试C++
定义一个只能在堆上分配的类:创建类,并提供公开的成员函数用于创建和删除对象;将类的默认构造函数声明为私有;提供一个静态的公开函数,用于在堆上创建对象。此函数应使用new在堆上创建对象,并返回指向新对象的指针;将类的析构函数声明为私有,以确保类的用户不能在栈上创建对象。若在栈上创建对象,会在离开作用域时尝试调用析构,而此处是禁止的;提供一个公开的成员函数,用于删除在堆上创建的对象。使用delete删除对象。因为它是类的成员函数,所以可以访问类的私有析构。
2025-08-01 09:00:11
880
原创 Nginx学习
Nginx是一款高性能的HTTP和反向代理服务器,具有出色的并发处理能力(支持5万并发连接)。其核心功能包括正向代理(代理客户端)、反向代理(代理服务器)、负载均衡(分发请求至多台服务器)和动静分离(动态/静态资源分别处理)。配置文件分为全局块(整体设置)、events块(网络连接)和http块(核心配置)。Nginx以内存占用少、性能优越著称,采用分层架构思想,通过增加代理层解决扩展性问题。
2025-07-30 09:19:42
318
原创 Docker学习
本文介绍了Docker容器技术的基本概念和使用方法。主要内容包括:Docker的安装步骤(基于CentOS系统)、核心架构(镜像、容器、仓库)、镜像加速配置、常用命令(服务管理、镜像操作、容器操作)、数据卷管理以及应用部署(MySQL、Tomcat、Nginx、Redis)。文章还讲解了Docker镜像原理、Dockerfile编写、服务编排工具Docker Compose的使用,以及私有仓库的搭建和镜像管理。最后对比了容器虚拟化与传统虚拟机的区别,说明容器具有轻量、可移植性高等特点。
2025-07-29 22:32:10
869
原创 重写QMessageBox弹出对话框
"这是一个完全自定义的消息框\n支持多行文本和自定义按钮",qDebug() << "用户点击了按钮:" << result;{"保存", "放弃", "取消"}
2025-03-20 20:19:06
418
原创 qt知识点学习
若这个部件上已经安装了一个布局管理器,那么QWidget不会安装下一个。必须先删除现有的布局管理器(由layout()返回),才能使用新的布局管理器。Qt子线程无法直接修改ui,需要发送信号到ui线程进行修改。一般继承自QDialog。
2024-04-05 23:33:59
12
原创 Qt-样式表qss练习
********************QAbstractScrollArea样式**********************/*/ /* 设置背景色*//* 设置背景图片*//* 设置背景图像是否及如何重复*//* 设置背景图像的起始位置*//* 背景图像是否固定或者随着页面的其余部分滚动 *//*由于QScrollArea里还有一层QWidget,所以需要将这一层QWidget设置透明才可以通过QAbstractScrollArea设置背景*/
2024-03-22 07:31:58
36
原创 Qt入门学习实践-Practice
使⽤,在场景中创建2个item,分别显示⽂字“⽜郎”、“织⼥”,并创建⼀条连线连接这两项。可通过⿏标拖动这两项,线也会跟根据item位置变化,始终连接这两项。编写UDP服务器和UDP客户端。服务器使⽤定时器(QTimer),每个1秒发送⼀条时间数据,每隔2秒模拟发送⼀条员⼯信息数据(可使⽤随机数模拟);客户端接收到数据后,以表格()的形式添加或者更新数据。时间数据结构如下:structStTimedoubletime;员⼯数据结构如下://员⼯结构体。
2024-03-12 23:01:23
17
原创 osg学习笔记
智能指针:当用户使用模板管理一个Referenced对象时,将自动调用Referenced::ref(),内存引用计数器启用并加1;当ref_ptr模板超出其生命范围时,将调用Referenced::unref(),类实例的内存计数器减1.减到0时则对象自动释放。即:Referenced* ref = ref_pointer.get();将引用对象的实例输出,同时将其引用计数归0,但是不释放。基类,它包含了一个整型的引用计数器。智能指针的作用,熟练掌握智能指针。节点和场景图形均继承自这一。
2024-02-21 21:48:34
421
原创 Linux基础
关机:init 0重启:init 6 或 reboot查看当前目录:pwd清屏:clear 或 reset查看/设置时间:1)查看时间:date2)设置时间(需要系统管理员权限):date -s "2023-09-23 09:23:23"/bin:bin是Binaries(二进制文件)的缩写,这个目录存放了经常使用的系统命令。/boot
2023-11-19 01:14:13
96
原创 Qt入门基础知识
自定义信号使用宏signals或Q_SIGNALS,自定义槽函数使用宏slots或Q_SLOTS。= m_value)//发出信号//...//创建Counter对象可根据返回值判断信号是否连接成功连接成功返回true,失败返回false。1.有信号或槽函数的类必须加上Q_OBJECT宏;2.建⽴连接时,信号和槽函数不要写上参数名称;3.不要重复连接,否则发出信号后,槽函数会被重复多次调⽤;4.
2023-09-18 22:37:12
653
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅