- 博客(364)
- 收藏
- 关注

原创 【C++】STL源码阅读+模拟实现全流程记录
NOTE]转眼间4月已经一周过去了,回想起本系列的第一个博客 vector的使用和源码解析 已经是3月中旬的文章,不得不感慨时间飞逝。尤其是在这个阶段,2024年秋天,我将踏上残酷的秋招战场,与全国各大顶尖高效的学生甚至一些海外的留学生一起竞争那不知所剩有几的校招岗位,我不禁也开始感到紧张和焦虑。但这种情况下,为什么我还要花这将近20天的时间去看STL的源码呢?去花费大量的时间去模拟实现?我有时也会这样问自己是否值得?
2024-04-08 19:48:10
861
1

原创 分布式一致性算法 raft学习笔记全记录
一开始的时候对于分布式我是一头雾水,找不到系统的教学,没有特别权威的书籍。在我百般找寻之后,了解了raft算法,分布式系统的一个核心就是一致性算法,而raft算法又以简单易懂闻名,秉持着先易后难的学习思路,于是我去学习了raft,我听说6.824也要学习raft,而后面我应该也会抽时间做一做6.824的lab。于是我先学习了raft,并做了学习笔记,就当是为了后面做项目打基础嘛~,raft的笔记我目前写了4篇,后面可能会去看一看一些成熟的公司的基于raft算法的一些系统的源码,可能本专栏会扩充~
2024-03-24 19:01:23
429
1

原创 高复用性的九大排序算法实现【提供git操作练习仓库】
鉴于排序是高频面试题,所以笔者花了点时间写了个高复用性的验证排序算法的小demo。分为两个文件,其中sort.h中负责排序算法的核心功能实现,而test.cpp中则负责验证排序算法的正确性和耗时。目前已经实现了冒泡,选择,插入,快速,归并,堆,计数排序,还剩下基数排序和桶排序没有实现。
2024-03-14 11:42:31
452

原创 C++ Webserver从零开始全流程记录
到现在为止,这个专栏的十七篇文章已经差不多全部写完了。我现在的心情说不上来,有些许疲倦,有些许释然。我以为已经过了很长的时间,但回想起来也不过就是一个月多的时间。这一路做过来,碰到了非常多的问题,包括我在专栏里记录过的解决程序段错误的问题在内,可以说这样的问题数都数不完,我也因为要解决遇到的这些乱七八糟的错误,搜索了非常多的资料,学习了很多的工具。现在想来这也是一种锻炼吧。
2024-02-28 21:37:04
5066
1

原创 Linux小型操作系统项目,《操作系统真象还原》第一章——配置环境
许多资料都不会很详尽地写配置环境遇上的各种问题,我也曾因为配置环境遇上的问题无法解决,或者总跟别人教程不一样而半途放弃;你可以理解为它是一个功能简单的虚拟机,许多操作系统可以在这个仿真器上面运行,我们写的操作系统也是在这上面运行。这都是非常成熟的软件了,会比作者在书中推荐的更好用,同时遇到问题在网上可供搜索的资料也越多;所以这个项目我的参考资料就是《操作系统真象还原》这本书以及大佬校友的博客,我肯定没办法写的和大佬一样好,权当整理自己在写这个操作系统中所学到的知识,作一定的归纳总结把。
2023-07-12 15:24:17
138
原创 【读书笔记/深入理解K8S】集群网络
上一章讲了集群控制器的一个大概的原理,这一章讲一下集群网络。网络是集群通信的载体,因为该书是阿里云团队出品的,所以也以阿里云的集群网络方案为例,其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习,能对k8s集群网络的搭建有个大概的理解,也算是有所收获。网络搭建过程基于网络的通信。
2024-11-02 11:50:27
1170
原创 【读书笔记/深入理解K8S】集群控制器
这几天看完了阿里云团队基于阿里云本身实践出版的书《深入理解Kubernetes》,略有收获,为了避免读完就忘。特地写几篇读书笔记来巩固一下。
2024-10-31 15:23:55
627
原创 redis持久化机制
不过AOF机制记录日志不是每个命令立刻就落盘,而是先写到AOF缓冲区,然后再调用write写到AOF文件,此时文件内容并没有落到磁盘,二是在内核的page cache,由内核决定什么时候将AOF文件中的内容写入磁盘。同时,重写期间新的命令会同时写到重写缓冲区,重写结束后,子进程给父进程发送信号,父进程将重写缓冲区合并到aof缓冲区,并修改新的AOF文件名将旧的覆盖。redis可以采用RDB+AOF结合的机制,将RDB后的新命令用AOF存起来,一起保存到新的AOF文件中。AOF机制是指,redis在每一个。
2024-08-15 14:11:34
361
原创 Golang实现简单的HTTP服务,响应RESTful请求判断形状大小
题目1.shape 接口有面积Area() float64和 周长Perimeter()fioat64 两个法。为`Circle` `Rectangle`实现`shape` 接口。2.实现isGreater(shape1,shape2 shape)boo1 函数,用于比较两个形状的大小,并使用单元测试验证3.实现http.Handler,作为HTTP服务比较Circle与 Rectangle 的大小。并使用香户端验证。
2024-08-11 17:33:26
551
原创 Golang实现context超时控制小demo
是一个函数,调用它可以主动取消该上下文。在某些情况下,如果在超时之前,您确定不再需要基于这个上下文的操作继续执行,就可以调用。就是新创建的具有超时设置的上下文,在相关的操作中可以通过监听这个上下文的完成信号(比如通过。例如,如果在上述代码之后的某个地方,根据一些特定的条件判断需要提前结束相关操作,就可以执行。这行代码主要用于创建一个具有超时时间限制的上下文。是一个默认的空上下文,通常作为创建新上下文的起点。)创建一个新的上下文,并设置了超时时间为 5 秒钟。以及一个用于取消该上下文的函数。
2024-08-09 12:43:36
353
原创 C++实现单例模式/工厂模式
单例模式即一个类只创建一个实例,提供一个全局访问点。单例模式主要是为了控制资源访问,在一些功能如:数据库连接池,日志类实例,线程池等都可以采用单例模式。
2024-08-08 13:12:13
484
原创 MIT6.824 lab2 raft2A(含视频)
raft的功能我已经全部实现,博客内容还在产出,做了个视频对raft的代码进行了精讲,后续会补充博客。
2024-07-27 12:45:33
505
原创 MIT 6.824 lab1. MapReduce
NOTE]- 前言我真的恨死我这个拖延症了,lab1很早就完成很多部分了,但是收尾部分一直没完成,就一直拖着。后面再回来收尾的时候,发现前面的一些内容已经记不清楚了。以后做事还是要一鼓作气,不要gap太久。
2024-06-16 17:22:24
953
原创 MIT 6.824 Lecture1. Introduction and MapReduce
在实际应用场景中,我们可能会从网络中获取大量原始数据并处理(抓取文档、网络请求日志等等),或者计算许多种类的衍生数据(倒排索引、网络文档图结构的多种表示、单台主机抓取页面数量的概要、指定日期频次最高的请求集合等等)。这些操作大多简单直接,但输入数据量通常都很大,因此计算过程需要分布到数百或数千台机器上进行,才能保证过程在一个合理时间内结束。而为了处理计算并行化、数据分发和错误处理等问题而引入大量复杂的代码则令原本简单的计算过程变的晦涩难懂。
2024-06-16 17:15:43
968
原创 程序模拟:一条线段分成3部分,有多大的概率能组合成为一个三角形
这道题是我看网上的面试题,看到这个问题我来了兴趣。打算自己写一个小程序模拟一下,看一下大概是多少;
2024-04-13 20:25:30
571
原创 Go语言学习day1 ——配好环境,精通println
go语言有些我举得比较奇怪的语法规则,比如这个大括号,可能是因为Go是google开发的,所以要符合Google的C++代码规范吧,大括号如果单独一行就会报错;go使用包来引入一些函数?不太明白这个包是什么,好像java里面也有。好像是这个代码有main,就导入个main包。加不加都行,所以就不加。先来写一个Hello World。下一章学Go的基础语法。
2024-04-13 11:57:24
233
原创 【C++】深入再学习const
NOTE]昨天下班和实习生同事一起去吃饭,回出租屋就睡了,结果2点醒了到现在睡不着,就起来把这篇文章写了。刚写完,又困了,先睡了,早上起来再发表吧2024年4月12日04点54分。
2024-04-12 20:03:31
719
1
原创 Leetcode82. 删除排序链表中的重复元素 II -春招冲刺-codetop
【代码】Leetcode82. 删除排序链表中的重复元素 II -春招冲刺。
2024-04-10 14:29:09
471
原创 【C++】set map模拟实现
map和set底层都是使用的红黑树,但是上层的接口有一些不同。像map的话是靠key获得value,而set因为key和value是相同的,所以涉及到value的操作全都等同于key,比如find。所以需要对红黑树加一层封装。
2024-04-07 22:13:20
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人