编辑
2023-12-08
后端
00

container包定义了一套heap的接口,只要实现了这些接口就能作为一个heap来使用,定义如下

go
// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // heap 包为任何实现 heap.Interface 接口的类型提供堆操作。堆是一种具有以下特性的树形结构, // 即每个节点都是其子树中值最小的节点。 // // 树中的最小元素是根,索引为 0。 // // 堆通常用于实现优先队列。要构建优先队列,请使用 (负) 优先级作为 Less 方法的排序, // 这样 Push 就会添加项目,而 Pop 就会从队列中删除优先级最高的项目。 // 示例包括了这样一个实现;文件 example_pq_test.go 包含了完整的源代码。
编辑
2023-12-08
后端
00

cache发现一个简单的cache项目,这里面有2q,arc cache实现,算法原理看末尾

下面是arc cache代码

go
package arc
编辑
2023-12-08
数据结构与算法
00

最近没事做,临近期末,随便翻点源码,发现go竟然有个container包,以前从来没用过,里面有一个简单的list和一个heap,先贴出源码研究一下

编辑
2023-12-07
数据库内核
00

Bucket

go
// Bucket 表示数据库中的键值对集合。 type Buck
编辑
2023-12-07
linux
00

中断是一种异步事件处理机制,用于提高系统的并发处理能力。在Linux中,中断的整个过程包括中断请求、中断处理和中断返回三个阶段。中断号是用来标识不同类型中断的数字或代码。