自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EfficMultiCoreMemoryPool项目

本文介绍了一种高效的多核内存池实现方案,包括定长内存池、线程缓存(ThreadCache)、中心缓存(CentralCache)和页缓存(PageCache)三级架构。定长内存池通过自由链表管理内存碎片,解决malloc碎片问题;ThreadCache为每个线程独享的无锁缓存;CentralCache通过共享SpanList管理内存块;PageCache按页管理大块内存并支持合并。项目采用基数树优化映射查询,测试表明性能优于malloc,尤其在高并发场景。文章详细阐述了各级缓存的设计原理、内存分配/释放流程

2025-05-29 20:25:47 1031

原创 【Linux】线程POSIX信号量

本文介绍了信号量的概念及其在多线程编程中的应用。信号量主要用于同步操作,确保无冲突地访问共享资源。POSIX信号量可用于线程间同步,本质是一个计数器,用于预定特定资源。文章详细说明了信号量的基本接口,包括初始化、P操作(申请资源)、V操作(释放资源)和销毁信号量。此外,文章还通过生产者消费者模型的实例,展示了如何利用信号量和互斥锁实现线程间的同步与互斥,特别是在多生产者多消费者场景中,如何通过信号量筛选有效线程,避免死锁,并保证操作的原子性。最后,文章提供了一个基于环形队列的生产者消费者模型的代码实现。

2025-05-10 11:19:19 792

原创 【Linux】线程的同步与互斥

本文深入探讨了线程互斥与同步的概念及其在多线程编程中的应用。首先,文章回顾了互斥的基本概念,包括临界资源、临界区、互斥和原子性,并通过抢票系统的代码示例展示了多线程环境下数据不一致的问题。接着,文章引入了互斥锁(Mutex)的概念,详细介绍了其接口、使用方法以及如何通过加锁机制解决数据竞争问题。此外,文章还探讨了条件变量(Cond)的使用,解释了如何通过条件变量实现线程的同步,避免线程饥饿现象。最后,文章介绍了生产者/消费者模型,并通过阻塞队列(BlockingQueue)的实现展示了如何在实际应用中结合互

2025-05-10 11:02:54 1043

原创 【Linux】线程的概念与控制

线程概念认识和使用,分页式存储了解,封装线程库。

2025-04-08 09:57:34 722 2

原创 【Linux】进程信号

进程信号,信号认识,信号处理,信号中断,信号处理,volatile关键字,可重入函数了解,SIGCHLD信号

2025-04-08 09:25:46 1197 1

原创 【Linux】进程通信

进程通信,管道文件,System V系列:共享内存,消息队列,信号量

2025-04-01 20:29:51 1052 2

原创 【Linux】动/静态库

动静态库,库的了解/制作/使用。ELF格式文件的理解,动静态库生成的理解,GOT全局偏移量表

2025-03-12 20:58:17 903 1

原创 【Linux】Ext系列文件系统

物理磁盘了解,OS_Ext文件系统了解,软硬链接

2025-03-12 20:26:38 1064 1

原创 【Linux】I/O操作

I/O操作,缓冲区机制,重定向

2025-03-02 20:40:26 758 1

原创 【Linux】Linux的进程控制

进程创建/终止/等待/替换,exit/_exit函数,exec*系列函数,简单的自定义Shell

2025-03-01 21:46:46 681 1

原创 【Linux】操作系统的理解/进程/环境变量/虚拟地址空间

Linux系统中,OS必定需要对内存中的可执行程序进行一个管理:先描述,在组织OS对一个程序的描述使用的是一个名为task_struct(Linux下PCB的名称)结构体,我们将其称作为一个进程控制模块PCB(process control block)进程就是:PCB+程序的数据代码对进程的管理也变化为对程序列表的管理,增删查改这个列表即可!进程的所有属性都可以通过task_struct(PCB)找到内容分类• 标示符:描述本进程的唯⼀标示符,⽤来区别其他进程。

2025-02-11 19:09:53 743 1

原创 【MySQL-8】MySQL视图/用户管理

视图就是一个虚拟表,它可以将我们select语句查询的结果创建并且存储在一个新的虚拟表(视图)中,并且这个虚拟表和原表之间的关系相连密切,无论修改哪一方都会影响另一方。order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖视图可以和表一起使用。创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响视图不能添加索引,也不能有关联的触发器或者默认值。: 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)

2025-02-11 11:43:55 937

原创 【MySQL-7】事务

简单了解事务

2025-01-25 10:04:15 1030 1

原创 【C++】C++11

右值,移动构造,移动赋值,可变参数模版,lambda,bind

2025-01-20 10:59:40 963

原创 【Linux】Linux的权限问题

Linux基础权限问题

2025-01-04 10:01:55 956 1

原创 【Linux】Linux的基础工具

Linux的基础工具的介绍:Vim,gcc/g++,git,gdb/cgdb.....

2024-12-26 11:35:58 1272 2

原创 【Linux】Linux的基本常识+指令

Linux的基础指令和基本知识点

2024-12-08 20:25:06 1432

原创 【C++】Unordered_map/Unordered_map使用哈希表封装

本次的封装实现基于上次实现完成的链地址法的哈希表,使用哈希桶对unordered_map/unordered_set进行封装

2024-12-08 20:05:41 705

原创 【MySQL-6】MySQL的复合查询

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(不包含自己部门的员工)查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号--empno)指嵌套语句中返回单个子查询结果,如下面问题的deptno。查询的条件有多个,返回多列条件。

2024-11-30 18:43:24 1313

原创 【MySQL-5】MySQL的内置函数

MySQL的内置函数简单介绍

2024-11-30 18:25:59 913

原创 【C++】哈希表

哈希表的简单实现

2024-11-23 10:40:58 1058

原创 【MySQL-4】表的基本查询

表的基本查询

2024-11-19 22:54:00 1099

原创 【MySQL-3】表的约束

表的约束

2024-11-19 21:25:27 986

原创 【MySQL-2】MySQL的基本数据类型

MySQL中的基本数据类型认知

2024-11-17 18:33:47 1070

原创 【MySQL-1】MySQL数据库的基本操作

MySQL的基本操作的认识

2024-11-17 18:22:04 1127

原创 【C++】Set/Map使用红黑树封装

stl库中通过这种巧妙的方法使我们只需要我们实现一棵红黑树就可以复用形成set/map的底层,通过模版的形式让编译器去帮我们生成对应的代码,泛型思维。由以下代码我们可以分析出stl库中的set和map底层都是通过红黑树所实现的。

2024-11-13 16:20:32 658

原创 【C++】红黑树

红黑树的简单实现

2024-11-11 21:43:47 1040 2

原创 【C++】AVL树的了解和简单实现

AVL树的简单实现

2024-11-11 21:26:19 732 1

原创 【C++】Set/Multiset和Map/Multimap的了解使用

初识set和map

2024-10-19 11:35:01 1068 2

原创 【C++】二叉搜索树的概念与实现

⼆叉搜索树中可以⽀持插⼊相等的值,也可以不⽀持插⼊相等的值,具体看使⽤场景定义:map/set/multimap/multiset系列容器底层就是⼆叉搜索树,其中map/set不⽀持插⼊相等 值,multimap/multiset⽀持插⼊相等值。⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树: 左子树的值默认小于根节点,右子树的值默认大于根节点。我们统计一个书中相同单词的个数,Key就是这个单词,而value表示单词的个数。走后序遍历进行析构delete。

2024-10-14 21:19:38 497 2

原创 【C++】适配器stack/queue/priority_queue使用和实现

stack/queue/priority_queue的使用和实现

2024-10-09 16:44:06 1001 2

原创 【C++】C++的Vector使用和实现

vector使用和底层实现

2024-09-28 20:45:30 479 2

原创 【C++】C++的多态

多态的使用,虚函数,协变,override和final关键字,纯虚函数和抽象类,虚函数表指针,动态绑定和静态绑定

2024-09-17 16:28:09 1176 4

原创 【C++】c++的继承

基类和派生类又可以称作父类和子类,派生类可以继承基类中的成员,并且还可以拥有自己的成员,就好比植物是一个大类,而蒲公英也是一种植物拥有植物的特性(也就是植物类的成员属性),同时蒲公英也拥有自己的其他特点,如传播种子的方式;所以基类和派生类的关系如下图: 我们之前学习过每个类域都有着不同的成员,如public,protected,private。对于公共的成员public不管是类域内还是外都可以访问,对于后面两者只有在类域才可以访问,同样的是基类和派生类之间的基础方式也存在这种关系! 基类成员不希望外部访问,

2024-09-14 12:11:48 1288 2

原创 【C++】C++的模板初识

c++模板的初识

2024-08-24 11:15:11 835 2

原创 【C++】C++内存管理分布

c++中内存管理

2024-07-24 10:18:00 1503 16

原创 【c++】C++类和对象详解(下)

const成员函数,取地址运算符,再探构造函数,隐式类型转换,static成员,友元,内部类,匿名对象,对象拷贝时的编译器优化

2024-07-23 12:45:41 1186 8

原创 【C++】C++类和对象详解(上)

c++类和对象(上), 类的定义,类的特点,类的默认构造函数

2024-07-21 19:52:12 913 8

原创 LeetCode 链表OJ题

题目信息及链接:面试题 17.04. 消失的数字 - 力扣(LeetCode) 分析:首先我们看到题目给予了我们一个数组,要求我们找到消失的数字,这个消失的数字指的是所给我们的数组中排序后少掉的数字,比方说示例1中给了最大数3,前面的数字应该是0,1,2,3,但是输入的却是3,0,1,缺少了数字2,那么2就是消失的数字。并且题目要求O(n),意味着我们只可以遍历一遍数组。思路考虑: 既然它给我们的是缺失的数组,那么我们可以创建一个正常的数组,通过对双方数组元素的对比找出缺少的数字,但是这样的时间复杂度就是O

2024-07-17 08:25:08 982 1

原创 【C++】C++入门的杂碎知识点

C++入门需要了解的杂碎知识点,了解之后更好里类与对象的内容

2024-06-16 15:30:42 1262 8

空空如也

空空如也

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

TA关注的人

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