自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 go高性能单机缓存项目

其中的refreshTickerMap, expireTickerMap存放的是每个特定的刷新时间/过期时间对应的sharedTicker。每个sharedTicker负责多个相同刷新时间/过期时间的缓存池的更新/过期操作。NewAsyncCache 初始化 AsyncCache 实例。如果在缓存池中就刷新键值对过期时间。singleflight 处理请求。返回 AsyncCache 实例。GetOrSet 获取或设置缓存。为给定的键值对中的值设定默认值。Range 遍历缓存。Range 遍历缓存。

2024-12-12 21:03:36 1084

原创 多人聊天室项目 AIO模型实现

实现一个简单的回声室服务器:服务器会简单地将客户端发送的消息原封不动地发送给客户端。

2024-12-05 22:52:50 316

原创 多人聊天室 NIO模型实现

使用Channel代替Stream使用Selector监控多条Channel可以在一个线程里处理多个Channel I/O。

2024-12-04 20:46:44 633

原创 C++模拟堆

C++堆 模板题及其带映射关系的进阶题

2024-12-04 11:17:33 328

原创 多人聊天室项目 BIO模型实现

多人聊天室项目 BIO模型实现。

2024-12-03 22:19:06 250

原创 DIY-Tomcat part 3 实现对动态资源的请求

将DIY-Tomcat项目实现能够处理对动态资源的请求

2024-11-29 20:10:29 590

原创 DIY-Tomcat part 2 实现Processor和Connector以及测试所用TestClient

实现Processor和Connector以及测试所用TestClient成功返回File not found的网页内容。成功返回对应的网页内容。

2024-11-29 15:48:40 499

原创 DIY-Tomcat项目 part 1 实现和测试Request以及Response

手搓一个Tomcat的简化模型 处理HTTP的请求和响应以及支持HTTP协议

2024-11-28 20:55:54 669

原创 栈和队列算法

栈和队列相关算法 C++实现

2024-11-28 11:12:27 147

原创 链表算法 C++

包含单链表 双链表的C++实现

2024-11-28 10:04:22 229

原创 双指针算法

双指针算法 C++实现

2024-11-27 12:17:00 187

原创 前缀和与差分算法

前缀和与差分算法 C++实现

2024-11-27 11:06:17 155

原创 快速排序 C++

快排算法的边界处理非常繁琐, 建议直接背一个快排模板直接用。

2024-11-26 09:16:16 301

原创 离散化 C++

【代码】离散化 C++

2024-11-25 20:57:14 166

原创 贪心算法-Huffman树 不等式 推公式

算法(贪心,哈夫曼树,堆,优先队列) O(nlogn)𝑂(𝑛𝑙𝑜𝑔𝑛)经典哈夫曼树的模型,每次合并重量最小的两堆果子即可。时间复杂度使用小根堆维护所有果子,每次弹出堆顶的两堆果子,并将其合并,合并之后将两堆重量之和再次插入小根堆中。每次操作会将果子的堆数减一,一共操作 n−1次即可将所有果子合并成1堆。每次操作涉及到2次堆的删除操作和1次堆的插入操作,计算量是 O(logn)。因此总时间复杂度是 O(nlogn)

2024-11-25 17:10:09 551

原创 贪心算法-区间问题 C++

原题解:https://www.acwing.com/solution/content/79913/

2024-11-25 11:31:46 423

原创 状态压缩DP 树形DP 以及记忆化搜索

原题解链接:https://www.acwing.com/solution/content/15616/解释一下st[j | k] :已经知道st[]数组表示的是这一列没有连续奇数个0的情况,我们要考虑的是第i-1列(第i-1列是这里的主体)中从第i-2列横插过来的,还要考虑自己这一列(i-1列)横插到第i列的 比如 第i-2列插过来的是k=10101,第i-1列插出去到第i列的是 j =01000,那么合在第i-1列,到底有多少个1呢?自然想到的就是这两个操作共同的结果:两个状态或。

2024-11-23 19:27:39 421

原创 极客时间 《Redis核心技术与实战》01 | 基本架构:一个键值数据库包含什么?知识总结

极客时间 《Redis核心技术与实战》01 | 基本架构:一个键值数据库包含什么?知识总结

2024-11-21 20:16:32 394

原创 极客时间《Redis核心技术与实战》开篇词 知识点总结

极客时间《Redis核心技术与实战》开篇词知识点

2024-11-21 19:51:58 500

原创 线性DP 区间DP C++

三角形内的某个点,可以从这个点的左上方或右上方来到这个点,因此有状态转移方程:f[i, j] = max(f[i - 1, j - 1] + a[i][j], f[i - 1][j] + a[i][j])题二 最长上升子序列假设题目给出了n个数,这n个数存在了a[N]中:其中f[i] 表示以a[i]为结尾的最长上升子序列的长度(位置也是独特的,假设a[N]中有多个相同的数,他们的f值也不一定相同!!),则如果现在在计算第i个数的f[i]值,且遍历到了第j个数(j <= i) 并且 a[i] > a[

2024-11-14 21:09:01 401

原创 golang分布式缓存项目 Day6 防止缓存击穿

singleflight 是一个非常有用的包,它提供了一种机制来抑制对某个函数的多次重复调用。这个包特别适用于避免在高并发场景下对同一资源的重复请求,比如在缓存击穿问题中,多个请求同时访问同一个资源时,singleflight 可以确保这些请求中只有一个实际执行,其他请求则等待这个结果,从而减少对后端服务的压力核心概念singleflight 包中定义了一个名为 Group 的结构体类型,它表示一类工作,并形成一个命名空间,在这个命名空间中,可以使用重复抑制来执行工作单元。

2024-11-13 21:27:26 1515

原创 golang分布式缓存项目 Day5 分布式节点

概括性流程:fill:#333;color:#333;color:#333;fill:none;开始将多个服务器节点绑定到本地服务器gee上peers 监听8001, 8002, 8003端口并将端口监听到的请求交由peers绑定的ServeHTTP处理创建与用户面对的api客户端http.ListenAndServe 监听9999端口http.Handle处理路径为/api的请求发出http://localhost:9999/api?key=Tom的HTTP请求。

2024-11-13 20:23:02 1954

原创 golang HTTP基础

http.ListenAndServe 是 Go 语言标准库 net/http 包中的一个函数,用于启动一个 HTTP 服务器并监听指定的端口,以便接收和处理来自客户端的 HTTP 请求。这个函数是构建 Web 服务器和 Web 服务的基础。:一个字符串,指定服务器监听的网络地址和端口。通常格式为 “host:port”,例如 “:8080” 表示监听所有可用网络接口上的 8080 端口。如果省略 host 部分,默认监听所有网络接口**(即 0.0.0.0)。

2024-11-13 12:00:16 1108

原创 golang分布式缓存项目 Day4 一致性哈希

golang分布式缓存项目 Day4 一致性哈希

2024-11-12 10:16:48 778

原创 golang分布式缓存项目 Day3 HTTP服务端

golang分布式缓存项目 Day3 HTTP服务端

2024-11-11 10:23:24 886

原创 golang分布式缓存项目 Day2 单机并发缓存

var (mu.Lock()return gmu.RLock()return g一个 Group 可以认为是一个缓存的命名空间,每个 Group 拥有一个唯一的名称 name。比如可以创建三个Group,缓存学生的成绩命名为 scores,缓存学生信息的命名为 info,缓存学生课程的命名为 courses。第二个属性是 getter Getter,即缓存未命中时获取源数据的回调(callback)。第三个属性是 mainCache cache,即一开始实现的并发缓存。

2024-11-10 16:37:10 767

原创 golang分布式缓存项目 Day1 LRU 缓存淘汰策略

golang实现分布式缓存项目 Day1

2024-11-07 20:54:15 988

原创 动态规划—背包问题

动态规划中的背包问题,从最基础的01背包到分组背包等问题的解题思路与代码实现

2024-11-04 19:32:49 848

原创 博弈论 C++

算法中的简单博弈论 包含NIM游戏及其变种 C++实现

2024-10-24 11:47:21 620

原创 JAVA高性能缓存项目

从0到1模拟打造一个高性能缓存池

2024-10-23 17:16:01 1876

原创 容斥原理 C++

容斥原理算法 C++实现

2024-10-19 20:11:30 485

原创 求组合数 C++

求组合数相关的算法 包含快速幂,费马小定理,分解质因数等

2024-10-17 11:04:59 498

原创 中国剩余定理 C++

中国剩余定理 C++实现 例题分析

2024-10-12 15:08:26 462

原创 扩展欧几里得算法 C++

扩展欧几里得算法及其应用 C++实现

2024-10-09 21:16:22 255

原创 快速幂 C++

包含快速幂 以及通过快速幂求逆元的C++实现方法

2024-10-09 16:08:26 1016

原创 C++欧拉函数

如何求欧拉函数,以及如何用线性筛法快速求欧拉函数之和

2024-10-08 17:15:04 461 2

原创 约数相关算法 C++实现

约数相关算法 C++实现

2024-10-07 18:12:28 383

原创 质数相关算法 C++实现

质数相关算法 C++实现

2024-10-06 21:05:26 226

原创 二分图算法总结 C++实现

二分图算法总结及其C++实现

2024-10-06 14:50:19 325

原创 最小生成树算法总结 C++实现

最小生成树算法总结 C++实现 包含Kruskal算法和Prim算法

2024-10-05 15:57:05 189

空空如也

空空如也

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

TA关注的人

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